Hello, world!

关于WP-PostViews跟WP-Super-Cache冲突不计数的问题

 

一直有朋友来我博客问为何我博客的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 库重复加载导致莫名其妙的问题。

按道理就是这样,有这问题的朋友自己尝试下,如果可以解决的话请反馈一下是否有效。