一直有朋友來我博客問為何我博客的 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 庫重複加載導致莫名其妙的問題。
按道理就是這樣,有這問題的朋友自己嘗試下,如果可以解決的話請反饋一下是否有效。