当前位置: 首页 > Wordpress > 正文

不知道有没有小朋友发现,weisaybox使用的过程中,如果一篇文章已经有了浏览次数,你更新或者修改了这个文章,那么它的浏览次数就会清零。虽然按逻辑来说,这个文章已经不是原来那个文章了,但是大部分博友的修改,都是小幅度的修改,文章本身还是那个文章,如果积累了浏览次数重置了,体验就打折了。

问了下豆包

原生 WordPress 本身,编辑保存文章,不会重置浏览次数。 编辑后阅读数清零,是浏览量统计插件的逻辑(WP-PostViews / Post Views Counter 这类),不是 WP 自带功能。

WP 的文章保存钩子,默认不会碰 post_meta 里的浏览数字; 但有部分老版统计插件,每次更新文章(post update)会重新生成 meta,直接覆盖成 0,尤其是经典的 WP-PostViews。

解决方法(等威兄更新,不知道是否会采纳)

用代码钩子,保存文章前强制保留旧阅读量,插件升级不受影响。放到主题的 functions.php末尾,这个代码作用:每次保存文章之前,从数据库读取原来的浏览量,强制写回去,不让它清零。


// 保存文章时保留浏览量,防止编辑后重置
add_action('pre_post_update', function($post_id){
    // 排除自动草稿、修订版本
    if (wp_is_post_autosave($post_id) || wp_is_post_revision($post_id)){
        return;
    }
    // 获取数据库里保存的旧浏览数
    $old_views = get_post_meta($post_id, 'views', true);
    if($old_views !== ''){
        update_post_meta($post_id, 'views', $old_views);
    }
});

我自己还没动,影响不是特别大,等威兄研判是否要更新优化!

weisaybox主题在更新文章后,浏览次数清零:等您坐沙发呢!

发表评论

Gravatar

? razz sad evil ! smile oops grin eek shock ??? cool lol mad twisted roll wink idea arrow neutral cry mrgreen