wordpress站内搜索被他人恶意利用
想必每一个wordpress站点都会有一个站内搜索了,站内搜索方便了用户查询资料,但也可以被不良分子利用,当我们在查询材料的时候,会产生一堆带有敏感关键词的下拉菜单,而这些关键词的搜索是会被百度进行收录的,如果这些词是垃圾的搜索呢,看下图:
如果一个个人站点有许多这样的结果搜索页,势必会对站点的排名有所影响。对于 wordpress 如何来预防这种情况呢,其实也是很简单的,在 wordpress 主题函数 function 文件中加入如下的代码:
[code lang="php"]
add_action('admin_init', 'v7v3_search_ban_key');
function v7v3_search_ban_key() {
add_settings_field('v7v3_search_key', 'v7v3搜索关键词屏蔽', 'v7v
3_search_key_callback_function', 'reading');
register_setting('reading','v7v3_search_key');
}
function v7v3_search_key_callback_function() {
echo '';
}
add_action('template_redirect', 'v7v3_search_ban');
function v7v3_search_ban(){
if (is_search()) {
global $wp_query;
$v7v3_search_key = get_option('v7v3_search_key');
if($v7v3_search_key){
$v7v3_search_key = str_replace("\r\n", "|", $v7v3_search_key);
$BanKey = explode('|', $v7v3_search_key);
$S_Key = $wp_query->query_vars;
foreach($BanKey as $Key){
if( stristr($S_Key['s'],$Key) != false ){
wp_die('请不要搜索非法关键字');
}
}
}
}
}
[/code]
加入该代码后会在 wordpress 的后台设置选项中出现一个文本域,在文本域里面加入要屏蔽搜索的关键词即可,一行一个关键词,如下图:
当我们在搜索包含屏蔽的关键词后会出现如下的页面,从而达到站内搜索不被恶意使用,如下所示: