A-A+
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->query_vars; foreach($BanKey as $Key){ if( stristr($S_Key['s'],$Key) != false ){ wp_die('请不要搜索非法关键字'); } } } } }
加入该代码后会在 wordpress 的后台设置选项中出现一个文本域,在文本域里面加入要屏蔽搜索的关键词即可,一行一个关键词,如下图:
当我们在搜索包含屏蔽的关键词后会出现如下的页面,从而达到站内搜索不被恶意使用,如下所示:
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就不能运行
是不是没有 } 符号结束闭合。
怎么看到自己的是不是被利用了呢?
可以从百度 site 一下就知道了。
站小,流量少,还漫游遇到这个问题,纯支持,顺便收藏。