WordPress 下老舊又高效的本地緩存插件cos-html-cache

說起WordPress的緩存插件來對明月來說絕對是個老生常談的話題了,明月分別撰文寫過WP Super Cache、W3 Total Cache、WP Rocket等等插件,甚至進階折騰心得分享也不少,但是對於完美的追求一致是我「折騰」的動力,所以對於緩存插件明月是一直在「折騰」的路上。

在當前眾多優秀緩存插件大行其道的時候,還有一個老牌的緩存插件一直受到眾多大咖們的青睞。像Git主題作者雲落就向明月推薦過一個老牌的緩存插件——Cos Html Cache,因為這個插件實在是太老了,所以明月為了安全考慮一直沒有很重視,也沒有自己使用和測試過。這兩天沒事兒的時候就安裝體驗了一下Cos Html Cache插件。

五年前的插件了,至今都可以發揮著不錯的作用

真是「不試不知道,一試嚇一跳」呀!這個Cos Html Cache竟然是直接生成Html靜態緩存文件的,不像 W3 Total Cache(簡稱W3TC) 和 WP Super Cache(WSPC) 還需要複雜的配置和運算甚至藉助伺服器端的配合完成Html靜態化緩存,說白了Cos Html Cache就是簡單直接。因為簡單了,所以Cos Html Cache只生成首頁和文章頁的緩存,在明月的測試下發現wooCommerce插件的商品頁也可以支持的,所以我目前已經將Cos Html Cache用在【玉滿齋旗艦店】里了,歡迎給位瀏覽體驗;

玉滿齋旗艦店直達

下面就總結一下Cos Html Cache緩存插件的優缺點。

優點

  • 插件本身很小巧,只有兩個文件。
  • 功能單一直接,只有自動生成緩存、刪除緩存。
  • 緩存效能很高,網頁載入實現「秒開」很容易。
  • 支持Ajax評論。

缺點

  • 最後更新是5年前了。
  • 不支持「無目錄前綴」的分類目錄偽靜態(必須有目錄前綴)。
  • 在硬碟上生成緩存、調用硬碟上的緩存,對硬碟性能有依賴性。
  • 因為是生成了純靜態的html文件,所以PostView統計依然不準確和失效。

安裝和使用

Cos Html Cache的安裝很簡單,在 WordPress 的官方插件平台里就可以找到Cos Html Cache的,直接在 WordPress 後台的「插件」——「安裝插件」裡面搜索安裝即可,這也是明月推薦的插件安裝方法之一,如果你的伺服器實在是無法連接 WordPress 的插件市場,那麼只能下載本文最後的ZIP壓縮包了,然後在 WordPress 後台的「插件」——「安裝插件」——「上傳插件」裡面上傳安裝啟用即可。

安裝啟用後就可以在 WordPress 後台——「設置」里看到「靜態緩存」,這就是Cos Html Cache的設置了,裡面很簡單就一個「刪除HTML靜態緩存文件」的按鈕,如下圖:

具體的使用我就不多贅述了,都是很簡單的東西了。

測試緩存生效

Cos Html Cache的緩存生成不是一次性生成的,是根據用戶訪問實時生成的,也就是說第一次被用戶訪問了才會實時的生成緩存html文件到對應的以分類目錄名稱命名的根目錄下的目錄裡面,比如,分類目錄是news,那麼在 WordPress 根目錄下就會有一個news的目錄,這裡面就保存著生成的html靜態文件。記住Cos Html Cache只會緩存首頁和文章頁的, WordPress 的「頁面」好像是不緩存的,至少明月測試下來沒有發現「頁面」被緩存。

Cos Html Cache需要時非登錄用戶的瀏覽訪問才會觸發緩存生成的,所以自己測試的時候記得要退出檔前的登陸,否則是永遠不會生產緩存文件的。當然你也可以換個瀏覽器以未登錄方式瀏覽,這時在FTP里刷新根目錄就可以看到緩存文件在被第一次訪問後就自動生成了。記得要調整好相對應的許可權問題哦!

使用技巧

  • 關閉開啟首頁緩存

Cos Html Cache是支持首頁緩存的,如果你的首頁不需要實時更新,那麼就可以開啟這個功能,Cos Html Cache默認是開啟的,但是要生效還需要你在 WordPress 的根目錄里上傳一個名為index.bak的空白文件以便Cos Html Cache來生成和調用首頁緩存文件。如果你不需要首頁緩存文件生成(比如首頁更新要實時顯示需求的),可以修改cos-html-cache.php里的代碼來關閉「首頁緩存」,具體如下:

  1. /* config */
  2. define(IS_INDEX,true);// false = do not create home page cache

只需將上面的代碼里的true修改為false既可以關閉Cos Html Cache的首頁緩存功能了,這個大家根據自己的需要自己調整吧。

  • 指定文章禁止緩存

這個是雲落分享的一個方法,就是通過代碼實現在指定文章內插入一行標記代碼禁止此文章被緩存,實現其實很簡單,同樣是修改cos-html-cache.php代碼,具體如下:

在插件裡面搜索一下代碼:

  1. if( !substr_count($buffer, <!--cos-html-cache-safe-tag-->) ) return $buffer;

替換成下面的代碼:

  1. if( !substr_count($buffer, <!--cos-html-cache-safe-tag-->) || substr_count($buffer, <!--no-cache-->) > 0) return $buffer;

使用

在某篇文章底部添加<!--no-cache-->標籤就可以了。

好了,基本上就是這麼多了,如果以後明月又「折騰」出什麼別的技巧和心得了我會繼續分享的。關於Cos Html Cache今天就說到這裡了,至於說應該選擇哪個緩存插件?明月只能說要根據自己的情況來定的,這個「情況」一般是指伺服器的配置性能、網站流量多少、網站內容實時信息需求這些,緩存插件的選擇還是很重要的,因為這些插件有時候會造成網站出現「莫名其妙」的故障,至少明月用緩存插件至今幾乎隔不久就需要重新安裝一次緩存插件。總之對於Cos Html Cache插件,明月認為比較適合個人博客使用,特別是文字圖片內容居多的博客最合適,新上線的站點應該首選Cos Html Cache作為緩存插件使用的,老站因為「分類目錄前綴」的原因,可能會對SEO造成小小的影響,倒是也可以使用的(主要是明月目前還沒有在「老站」上試過這個插件。)

歡迎大家在評論里發表對Cos Html Cache插件的看法和使用體驗心得分享,明月會一一回復的哦!


推薦閱讀:

不懂IT的朋友花錢做了一個公司網站,老闆因客戶發現有首頁的wordpress版權文字而難堪。怎麼看這個行為?
輕鬆擁有自己的網站,四個知名的開源建站 CMS推薦,總有一款適合你
如何用 WordPress 建自己的個人博客?
搭建wordpress 獨立博客 主機推薦那些?
WordPress 有什麼輕鬆實現 AMP 或 MIP 的姿勢嗎?

TAG:WordPress | 缓存 | 优化 |