转载自https://www.im286.net/thread-24267724-1.html
现在的很多灰产利用搜索页面,非法关键词搜索,然后提交sitemap。
利用合法网站发布违法广告,以bc、色情、药物为主。
WordPress构建的网站,除了屏蔽搜索结果页面,也可以按以下方法屏蔽敏感字搜索。
但是我想要的是“白名单”方案,也就是说,只允许搜索“名单”内的关键字,如我的诉求是只允许搜索省市地名
或者只允许搜索不超过10个字符。
曾经找了好几个晚上,都没有找到好的办法。
添加禁止搜索关键词,可以屏蔽大多非法搜索,但是效率好像并不高,如果能够限定搜索词不能超过10个字符,也能屏蔽大多非法广告。欢迎大家提供高频高危关键词。
在WordPress当前主题的functions.php,添加以下代码,然后就可以在WordPress后台的“设置”-“阅读”(wp-admin/options-reading.php)的“搜索关键词屏蔽”,输入屏蔽的关键字,一个一行。
//屏蔽恶意关键词搜索 add_action('admin_init', 'php_search_ban_key'); function php_search_ban_key() { add_settings_field('php_search_key', '搜索关键词屏蔽', 'php_search_key_callback_function', 'reading'); register_setting('reading','php_search_key'); } function php_search_key_callback_function() { echo '<textarea name="php_search_key" rows="10" cols="50" id="php_search_key" class="large-text code">' . get_option('php_search_key') . '</textarea>'; } add_action('template_redirect', 'php_search_ban'); function php_search_ban(){ if (is_search()) { global $wp_query; $php_search_key = get_option('php_search_key'); if($php_search_key){ $php_search_key = str_replace("\r\n", "|", $php_search_key); $BanKey = explode('|', $php_search_key); $S_Key = $wp_query->query_vars; foreach($BanKey as $Key){ if( stristr($S_Key['s'],$Key) != false ){ wp_die('请不要搜索非法关键字'); } } } } }
评论抢沙发