WP-PostViews 计数功能 不计数 解决方法

我用wordpress仿了一个国外的模板,在本地调试一切正常,安装WP-PostViews插件后却发现WP-PostViews无法计数,无论我怎样刷新文章,阅读量还是0。于是百度了一轮,发现WP-PostViews不计数的原因有3个:

1、你处于登录状态,WP-PostViews不计算的浏览次数

WP-PostViews默认只有访客访问才计算阅读量,你如果处于登录wordpress的状态的话当然怎样刷新也没有效果啦。解决办法:退出登录或者把Count Views From设置成:Everyone。

2、安装缓存插件,网站被静态化了

如果你的网站安装了WP Super Cache、WP Rocket等缓存插件,网页被静态化了,你当然看不到浏览量的变化了。其实WP-PostViews还是在计算浏览量,只是前台网页被静态了看不到动态变化而已,当你重新更新网站缓存时,你就会看到文章一直积累的浏览量了。

当你使用缓存的插件的时候,会在根目录的配置文件wp-config.php中自动添加:

define("WP_CACHE", true);

WP-PostViews插件会判断wp-config.php是否开启 WP_CACHE,如果没有开启就使用PHP计数,如果开启了就使用ajax计数。

这个过程是WP-PostViews自动判断的,我们不需要任何设置,如果你不是通过缓存插件缓存网站的,需要手动开启WP_CACHE,不然WP-PostViews真的就不能统计浏览量了。

3、wordpress主题的头部模板文件header.php没有添加wp_head函数

我自己模仿的主题header.php中就是没有添加

<?php wp_head(); ?>

所以WP-PostViews插件无法算数。我们分析一下原因:

我们查看WP-PostViews插件的代码文件wp-postviews.php,找到以下代码:

### Function: Calculate Post Views
add_action('wp_head', 'process_postviews' );
function process_postviews() {

process_postviews就是PHP计数的功能函数,从add_action('wp_head', 'process_postviews' )可以看出process_postviews函数挂钩子挂到wp_head函数上,简单地我们可以理解为wp_head函数运行一次,就计数一次。

这样就说明如果没有调用wp_head函数,WP-PostViews就无法计数。

提示:大部分wordpress插件都是需要wp_head函数才能运行的,不使用wp_head函数需要三思。

解决办法有两个:

1、添加wp_head函数

在主题的头部文件header.php添加上:

<?php wp_head(); ?>

这是最简单的办法,如果真的不想使用wp_head函数,只能修改WP-PostViews插件的代码。

2、修改wp-postviews.php代码

打开后台,点击插件下”编辑” ,在”选择要编辑的插件”选择WP-PostViews,编辑wp-postviews.php文件,在文件内容找到:

add_action('wp_head', 'process_postviews' );

改成

add_action('get_header', 'process_postviews' );

原理很简单,我们把钩子挂到其他函数上就行。

注意:这个被挂钩子的函数一定要在每个主题的文件中都要被使用才行,get_header、get_footer函数都是满足要求的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值