一直有朋友来我博客问为何我博客的 WP-PostViews 在开启 WP-Super-Cache 后还是会正常计数,而他们总是遇到不计数的情况。
其实我也一直没去认真测试,只是在去年还是前年我在测试时发现 WP-PostViews 会在开启 WP_CACHE 时自己加载 jQuery 库和 一些 jQuery 代码 (应该是解决缓存时计数问题),于是某一天我就把这个插件的 jQuery 库加载代码屏蔽了,因为我的主题本身加载了 jQuery 库。这个不知道算不算是文章标题所说的 「关于 WP-PostViews 跟 WP-Super-Cache 冲突不计数的问题」 原因?所以有朋友遇到此类情况可以尝试一下:
1. 检查 wp-config.php 看看 WP-Super-Cache 有没有自动开启 WP_CACHE:就是 wp-config.php 有没有 defined('WP_CACHE', true);
2. 检查你的主题本身有没有加载 jQuery 库,如果有,那么就要检查有没有跟 WP-PostViews 的 jQuery 库重复加载问题。另外我发现 WP-PostViews 加载 jQuery 的语句是 wp_print_scripts('jquery'); 应该是老式加载方式,所以最好屏蔽,屏蔽方法:
打开 WP-PostViews 插件文件 wp-postvies.php,找到 (大概是 199 行)
wp_print_scripts('jquery');
注释掉
// wp_print_scripts('jquery');
总结:
1. 开启 WP-Super-Cache,需要在 wp-config.php 开启 WP_CACHE(一般 WP-Super-Cache 插件会自动开启)
2. 主题必须并且只能加载一个 jQuery 库
3. 主题 header.php 的<head> 里面有 wp_head() 函数
PS:一般 WP 用户的主题、插件最好用 WP 官方推荐的 wp_enqueue_script 方法来加载 jQuery 库,这样可以有效防止 jQuery 库重复加载导致莫名其妙的问题。
按道理就是这样,有这问题的朋友自己尝试下,如果可以解决的话请反馈一下是否有效。