A-A+

wordpress站内搜索被他人恶意利用

2014年12月24日 PHP开源系统 评论 5 条 阅读 156 views 次

想必每一个wordpress站点都会有一个站内搜索了,站内搜索方便了用户查询资料,但也可以被不良分子利用,当我们在查询材料的时候,会产生一堆带有敏感关键词的下拉菜单,而这些关键词的搜索是会被百度进行收录的,如果这些词是垃圾的搜索呢,看下图:

wordpress站内搜索被他人恶意利用

如果一个个人站点有许多这样的结果搜索页,势必会对站点的排名有所影响。对于 wordpress 如何来预防这种情况呢,其实也是很简单的,在 wordpress 主题函数 function 文件中加入如下的代码:

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 '<textarea class="large-text code" id="v7v3_search_key" c
ols="50" name="v7v3_search_key" rows="10">' . get_option('v7v3_s
earch_key') . '</textarea>';
}
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-&gt;query_vars;
foreach($BanKey as $Key){
if( stristr($S_Key['s'],$Key) != false ){
wp_die('请不要搜索非法关键字');
}
}
}
}
}

加入该代码后会在 wordpress 的后台设置选项中出现一个文本域,在文本域里面加入要屏蔽搜索的关键词即可,一行一个关键词,如下图:

wordpress站内搜索被他人恶意利用

当我们在搜索包含屏蔽的关键词后会出现如下的页面,从而达到站内搜索不被恶意使用,如下所示:

24-2-03

标签:

5 条留言  访客:5 条  博主:0 条

  1. huhu

    Warning: call_user_func() expects parameter 1 to be a valid callback, function ‘v7v 3_search_key_callback_function’ not found or invalid function name in /wp-admin/includes/template.php on line 1120 什么情况啊,而且 提示这个$S_Key = $wp_query->query_vars; 错误,如果不把这段删除了wp就不能运行

    • smiling

      是不是没有 } 符号结束闭合。

  2. huhu

    怎么看到自己的是不是被利用了呢?

    • smiling

      可以从百度 site 一下就知道了。

  3. 从良未遂

    站小,流量少,还漫游遇到这个问题,纯支持,顺便收藏。

给我留言