最近群里很多朋友又在抱怨 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');

好了教程结束~