总结wp-postviews不计数的解决方法 2011-01-29 wordpress 6 条评论 7442 次阅读 第一种,启用Cache导致不计数 例,启用WP Super Cache 解决方法: 1、在后台禁用WP Super Cache插件 2、删除/wp-content/plugins/目录的wp-super-cache目录 3、删除wp-content目录下面的cache目录。 4、检查根目录下的wp-config.php,如果有`define(’WP_CACHE’, true);`则把这一行删掉 PS:本博就是用为曾经装过W3 Total Cache插件,卸载不完全,导致出错。如下: ``` /** Enable W3 Total Cache **/ define('WP_CACHE', true); // Added by W3 Total Cache ``` 第二种,静态化导致的不计数 当WordPress安装了cos-html-cache后,按照默认的设置,插件wp-postviews是无法工作的。经过一定修改,可以使wordpress在静态化下实现计数。 在wp-postviews.php中,找到 ``` if(defined('WP_CACHE') && WP_CACHE) ``` 将其替换为 ``` if ((defined('WP_CACHE') && WP_CACHE)||(defined('COSMETA' ) && COSMETA)) ``` 通常情况下就可以实现计数了,如果不行可以留言给我:) 第三种,其他复杂的情况,比如jquery框架载入的问题 本博的另一篇文章《解决PHP Speedy与wp-postviews共用》可供参考,另下面转载一篇文章 解決 wp-postviews 不能與 cache 同時啟用的問題 太多朋友問到這個問題了, 不得不發個簡單的說明. 大家看到我這邊使用了 object-cache 大量減少 queries 和 loading time, 同時又發現在 "點擊統計" 又可以正常計數. 這就奇怪了, 為何他開了 cache 就不計數了? 先看文件: wp-postviews.php 約在 95 行: ``` if(defined('WP_CACHE') && WP_CACHE) { // ... 若 defined('WP_CACHE', true); 後面才執行 jQuery Ajax 計數 ``` object-cache.php 約在 405 行: ``` if ( ini_get('safe_mode') && ! defined('ENABLE_CACHE') ) return; // 在 wp-config.php 有 define('ENABLE_CACHE', true); 才會 cache 一個是用 'WP_CACHE', 一個是用 'ENABLE_CACHE', 到底哪個才對呢? ``` WordPress 真正的 object-cache 文件在 /wp-includes/cache.php 注意看文件的內容, 它只是用於服務器的 memory cache. 而我們加的 object-cache.php 全名是 'File-Based Object Caching', 是服務器的 disk cache. (因為 WordPress 2.5 以前的版本內置了disk cache, 後來刪除此功能改用現在的 memory cache.) 'File-Based Object Caching' 就是將以前取消的 disk cache 恢復, 裏面延用了以前的 'ENABLE_CACHE'. WordPress 從沒對 plugins 開放 'ENABLE_CACHE', 所以從 plugins 角度來說, 應該必需使用 'WP_CACHE' 才是正確的. 若 object-cache 是用 'ENABLE_CACHE', 而 wp-postviews 判斷的卻是 'WP_CACHE', 所以 jQuery Ajax 不啟動, 也就不計數了. 解決方式: 將 object-cache.php 和 wp-config.php 有 'ENABLE_CACHE' 的地方改為 'WP_CACHE'. ps. 若你不用改也能正常計數, 應該是你以前試過 wp-super-cache 之類的插件, 'WP_CACHE' 已是開的, 所以沒感覺. 另一個原因: 若 'WP_CACHE' 已開, wp-postviews 會自動啟用 jQuery Ajax 傳資料. 所以 jQuery 必需是在 wp_head() 之前掛上. 若掛在 wp_head() 之後或掛在 wp_footer() 都是不計數的. 因為 jQuery 先掛上才能讓後面的語法生效. wp-postviews 1.50 是用 `wp_print_scripts('jquery') `掛 jQuery, 建議改用` wp_enqueue_script( 'jquery' ) `較不會出錯. 這樣可以保証先有 jQuery 之後再執行 Ajax 代碼, 細節請參考《WordPress 標準的 script 掛法》. 若你的 wp-super-cache 之類的插件不能和 wp-postviews 同時啟用, 通常是這問題. 希望新手也能看懂~ 标签: wordpress, 问题, jquery, wp-postviews 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
哥们你把WP升级 还有POSTVIEWS升级到最新看下,
现在变成
if ($should_count && defined('WP_CACHE') && WP_CACHE) {
这样了。
怎么调都不兼容的样子。
网上查查吧,是不是函数变了?或者升级下这个插件咯,或者就用老版本
我的问题同一楼一样,就是使用cos-html-cache无法统计,保持原有状态不变,求解,替换if ((defined(‘WP_CACHE’) && WP_CACHE)||(defined(‘COSMETA’ ) && COSMETA))
也是不行的,我的网站是www.pangu51.com 帮忙看看 :sx:
不太清楚,你用ajax之类的应该就能统计了吧
你好,你这个解决办法我还是不能用啊,WP版本是3.3.2
不太清楚,也可以用其他插件的了,再试一下吧,主要是排除缓存问题。