由于wordpress的数据库结构问题,其站内搜索需要进行很多的查询,效率很低。如果不加限制的话,如遇到恶意攻击很容易造成资源占用过高,导致访问不稳定。随着百度站内搜索的开放,更多人选择百度站内搜索代替系统自带的搜索功能或者对站内搜索进行限制。本片文章将详细说明如何关闭wp的站内搜索功能。

在主题的functions.php文件最下方加入以下代码:


function disable_search( $query ) {
       if (is_search() && !is_user_logged_in()) { //已登录用户不禁用搜索
              $query->is_search = false;
              $query->query_vars['s'] = false;
        $query->is_404 = true; //显示错误信息
        http_response_code(404); //返回404代码,适用于php 5.4以上。旧版本也可以使用header函数返回404。
       }
}
add_action( 'parse_query', 'disable_search' );

设置结束后,以上代码会禁用站内搜索,并返回错误页面和404代码。