最近群裡很多朋友又在抱怨 WordPress 太過於臃腫,執行速度太慢。看到這類抱怨我只想說自己為了那麼多花哨無用的功能裝那麼多外掛怪誰啊!不吐槽了= =,其實小編也很久沒寫 WordPress 加速、 WordPress 最佳化類教程了,正好借這個由頭寫篇文章~,好了閒話少說開始教程:

有一定建站經驗的站長都知道 php+mysql 建站系統最大的瓶頸就是 sql 查詢,一旦資料量達到一定程度 sql 查詢不僅慢而且負載也很高,那麼減少 sql 查詢將能給 WordPress 達到很好的最佳化加速效果。那麼如何來減少 WordPress 網站的 sql 查詢呢?WordPress 的站內搜尋是非常不準確的,我們可以透過使用百度、谷歌等搜尋引擎開放站內搜尋替換掉 WordPress 預設的站內搜尋這樣可以有效的減少 WordPress 的 sql 查詢並且還提高了使用者體驗。但是如果有訪客透過 「WordPress/?s=$key」 這種方式來訪問網站依然可以使用 WordPress 系統自帶的站內搜尋功能,那麼如何完全關閉 WordPress 的站內搜尋功能呢?其實很簡單隻需要在當前使用的 WordPress 主題的 functions.php 檔案中加入一段程式碼即可,程式碼如下:

function fb_filter_query( $query, $error = true ) {
        if ( is_search() ) {
                $query->is_search = false;
                $query->query_vars[s] = false;
                $query->query[s] = false;
                if ( $error == true )
                        $query->is_404 = true;
        }
}
add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );

另外老鳥級別的 WordPress 站長一定會發現 WordPress 系統在正常執行時會不斷的對 WordPress.com 的伺服器傳送請求傳送資料,雖然不知道 WP 到底是想幹嘛但是相信憑 Matt Mullenweg 的人品以及他家公司規模應該不會幹什麼壞事,不過這樣一來 WordPress 的執行效率就降低了很多。那麼我們可以透過 wp-config.php 檔案來遮蔽 WordPress 的對外請求。

define('WP_HTTP_BLOCK_EXTERNAL', true);

在 wp-config.php 檔案中加入以上程式碼後 WordPress 程式將不會對任何一個外部伺服器發出請求,但是這裡要注意的是有些站長為了加速網站收錄使用了 ping 功能,加上以上程式碼後 ping 功能將會失效。解決方法:只需要設定個對外請求白名單即可解決 ping 失效問題,程式碼如下:(以百度 ping 為例)

define('WP_ACCESSIBLE_HOSTS', 'ping.baidu.com');

好了教程結束~