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