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

» 2012-04-12 78条评论

一直有朋友来我博客问为何我博客的 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 库重复加载导致莫名其妙的问题。
补充:WP Super Cache 的高级选项我是选择了这个“Extra homepage checks. (Very occasionally stops homepage caching) (Recommended)”

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

zww
or
oooo

“关于WP-PostViews跟WP-Super-Cache冲突不计数的问题”有78条评论

  1. 牧风 says:

    沙发

  2. 牧风 says:

    碰到过 099 --> 199 的事情

    1. zwwooooo says:

      @牧风
      归类为RP爆发吗?

    2. 牧风 says:

      @zwwooooo 099之后直接到199, 计数错误

    3. zwwooooo says:

      @牧风
      使用wp-super-cache后,首页的views不会即时刷新,我一般会忽略这些。另外我的首页设置为“特殊”,好像是每过一段时间会自动更新。

  3. HelloMRS says:

    1\2\3条件都满足了,还是不行,是不是super cache设置问题呢?主题自带js被我wp_deregister_script掉了,加载的谷歌js 1.7.1版本。super cache 设置是推荐设置,linux主机。目前没搞定,怎么回事呢? :roll: 谢谢

    1. zwwooooo says:

      @HelloMRS
      你只是这样说我又看不到你的网站,,无法帮你判断。

    2. HelloMRS says:

      @zwwooooo
      哦,对哈,忘了写网址...www.ixaps.com 谢谢...、

    3. HelloMRS says:

      @zwwooooo
      还就是,我用wp-postviews做的最近30天的阅读最多,但是截断后,鼠标放上去显示的title和截断的一样,不是完整的标题...难道需要用SQL来做某段时间的阅读点击最多吗?谢谢,我翻遍您的文章,好像确实没相关的方法。还有上次那个随机文章造成评论乱窜的问题,是通过函数的方法解决的!

    4. zwwooooo says:

      @HelloMRS
      截断要修改插件代码,修改对就木有问题了。

    5. HelloMRS says:

      @zwwooooo
      求指教,我遇到关键是postviews自带的截断后,鼠标放上去 title部分显示不完整... :arrow:

    6. zwwooooo says:

      @HelloMRS
      自带的?自带没用过,既然是插件问题,要么自己修改要么问插件作者,另外这类插件也许木有考虑中文截取。

    7. HelloMRS says:

      @zwwooooo
      看了只能SQL解决了... :cry:

    8. zwwooooo says:

      @HelloMRS
      稍微看了下插件代码,title和文章名是同一个参数,所以不能简单修改能实现。

  4. Louis Han says:

    WP-PostViews Plus不就行了

    1. HelloMRS says:

      @Louis Han
      这个插件比wp-postviews好?还没用过哦

    2. 不能吧 says:

      @Louis Han
      记得在哪里看到过,这个plus有流氓行为,不靠谱。

  5. 官方自带的有点小大哦,加载的谷歌的。

    1. zwwooooo says:

      @刘印博客
      可以自己压缩的。

  6. 冲锋衣 says:

    没有接触这么深呢。

  7. 策划书 says:

    想博主学习了啊

  8. Normal says:

    缓存类插件我还从来没用过。。

    1. zwwooooo says:

      @Normal
      一般不需要,除非你的访问量大造成服务器压力

  9. airoschou says:

    Cache有时也很烦恼,修改东西不是即时刷新

    1. zwwooooo says:

      @airoschou
      对,我通常在要修改东西时就关闭了,你看我前天开始就关闭了,因为需要改东西。

  10. Kayo says:

    之前我的博客也是加载了两个 jQuery 库,自己没有注意,结果一直出现很多小问题,最近终于忍不住把一个给K掉!

    1. zwwooooo says:

      @Kayo
      呵呵,jQuery本来就是只能一个库。。。

  11. Dick_Wu says:

    对啊。!每次要清空缓存以后才会出现新的访问次数

    1. zwwooooo says:

      @Dick_Wu
      我的只有首页有显示,另外我设了首页为特殊,wp-super-cache 的高级选项有设置。

  12. Dick_Wu says:

    改了。。结果依旧不记数。。。。

    1. zwwooooo says:

      @Dick_Wu
      计不计数要去后台看看,前台因为缓存可能看不到数据已刷新。

  13. crazy says:

    不好意思,我想请教一个问题(与这主题无关)
    比如
    <?php if ($video) { echo "". $video . ""; } ?>
    能不能将". $video . "分离,让这个div内再放入其他元素,好像般?自己很菜,不太会弄,不懂能不能分离开来,也不知如何分离,请教...
    谢谢!

    1. crazy says:

      @crazy
      代码被过滤了,". $video . "被一个div id包围。

    2. zwwooooo says:

      @crazy
      假如你要加入的元素是参数 $new,那么:

      <?php if ($video) { echo '<div id="ooxx">' . $video . $new . '</div>'; } ?>
    3. crazy says:

      @zwwooooo
      我要加入的是
      <?php
      这里还有其他代码

      想要用<?php if ($video)...包围,如果如你说在当中加入.元素.不行噢。
      不好意思麻烦到你....

    4. zwwooooo says:

      @crazy
      好吧,我没理解出你的真正需求。其实你可以翻翻php语法手册,很容易改。另外提醒一下,你要贴代码用<code></code>括住,这样就不会被转换了。

    5. crazy says:

      @zwwooooo
      忘了加

      
      

      第一个是

      <?php if ($video) { echo "<div id='aabbcc'>". $video . "</div>"; } ?>

      第二个是

      <?php 中间还有其他代码 <?php } ?>
      

      两个代码都有各自的
      我想将第二个代码放到第一个代码中...
      不懂要如何更改...
      谢谢。

    6. zwwooooo says:

      @crazy
      好吧,还是不懂你要啥功能。

  14. 小年 says:

    内存损耗还没那么严重 :twisted:

    1. zwwooooo says:

      @小年
      要全部缓存,缓存适合只写内容的博客

  15. 小年 says:

    我的就是啊 :grin:

  16. A.shun says:

    标记一下,以后应该会需要
    话说 om 的评论框改得很实用啊

    1. zwwooooo says:

      @A.shun
      改了好一段时间了,玩玩而已。

  17. 哇塞,跑到chinaz去投稿了?

    1. zwwooooo says:

      @平板电脑推荐
      可能么?我从来不投稿。

    2. @zwwooooo
      那下次我去投,留我的链接 :mrgreen:

    3. zwwooooo says:

      @平板电脑推荐
      哈哈哈,你这是假冒

  18. jiemar says:

    主题没加载jquery库,怎么设置?wp postviews依然无法前台显示实时数据

    1. zwwooooo says:

      @jiemar
      试试选择 wp super cache 的这个选项:Extra homepage checks. (Very occasionally stops homepage caching) (Recommended)

    2. jiemar says:

      @zwwooooo
      恩,已经添加,下午看看效果

  19. 囧..不搞头像不行啊...
    歪个楼..
    我前几天也搞了个,WP Super Cache ,现在悲剧了,评论后刷新下也看不到自己的评论了..各种悲剧

    1. @Walkerinwind
      我看了下原因:
      比如文件为 archives/25638
      回复后评论地址为 archives/25638/comment-page-1#comment-82

      它在25638文件夹下又建立个名叫comment-page-1的文件夹,在那个文件夹下新建了个index.html,来静态化,而不是刷新2568文件夹下的index.html...
      似乎这就是症结所在,但束手无策,求帮助,万分感激

    2. @Walkerinwind
      原因找到了,在Advanced中,我把Locked Down 设置为enabled了...
      抱歉打扰了

    3. zwwooooo says:

      @Walkerinwind
      其实一般的博客无需这个插件

    4. zwwooooo says:

      @Walkerinwind
      这些木有研究,这插件太复杂了。

    5. zwwooooo says:

      @Walkerinwind
      没事,荒淫常来。

    6. @zwwooooo
      其实自己做这么个网站,就是为了好玩的.然后想尝试下各种好玩的插件什么的,实用性倒在其次...
      最惭愧的是对英语半懂不懂,一大段文字下去就不注意细节,脑补了很多东西..然后把配置说明的意思搞错了...
      多谢@zwwooooo 酱的回复和宽容

  20. 鬼娃娃 says:

    wp_print_scripts('jquery');

    其实我看不懂文章,就做了注释以上的

回复给 Dick_Wu ¬
取消回复

昵称 *

网址

B em del U Link Code Quote