关闭WordPress搜索功能

近期接连收到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的,这个代码是修改后支持高版本PHP的。

代码出处:https://zmingcx.com/disable-wordpress-search.html