近期接连收到 RDS 和 ECS 的使用率异常报警,通过日志发现都是搜索引擎蜘蛛爬虫爬了搜索页地址,而这些搜索词都是违规词,通过搜索这些关键词发现有许多站点中招,其目的是为了在搜索引擎进行非法推广。


遂决定关闭 WordPress 搜索功能,只需在当前主题的 functions.php 文件里加入以下代码即可。
//禁用 WordPress 前台搜索功能
function disable_search( $query, $error = true ) {
if (is_search() && !is_admin()) {
$query->is_search = false;
$query->query_vars['s'] = false;
$query->query['s'] = false;
if ( $error == true )
// 执行搜索后显示的错误页面
// $query->is_home = true; //跳转到首页
$query->is_404 = true;//跳转到 404 页
}
}
add_action( 'parse_query', 'disable_search' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );
网上找到的代码大都是不兼容 PHP7 的,经测试以上代码是支持 PHP7 的。
代码出处:https://zmingcx.com/disable-wordpress-search.html