昨天有位站长问我能不能限制 WordPress 的搜索关键词,因为有人利用他的网站搜索色情词汇,本来正常搜索没有影响的,但是在部分网站中,搜索关键词产生的搜索页会被搜索引擎收录,实现推广功能。
WordPress 的关键词搜索限制实现起来还是比较简单的,最简单的要数直接修改主题搜索文件了,在接收关键词时先处理再给 WordPress 进行搜索。但这样不利于后期更新主题,于是我选择下面这种利用 WordPress 过滤器实现。
- function dmd_search_filter($request_vars) {
- if (!is_user_logged_in()){
- $request_vars['s'] = "请先登录";
- }
- if (!empty($request_vars['s']) && strlen($request_vars['s'])>5) {
- $request_vars['s'] = "搜索词太长";
- }
- return $request_vars;
- }
- add_filter('request', 'dmd_search_filter');
将以上代码添加到你主题下的 functions.php 文件中即可。具体效果自行测试,部分主题不会显示搜索词而是返回 404,这就不要找我了,自行解决,解决不了的请带价来询!
如果你想过滤部分关键词,请使用如下代码。
- function dmd_search_filter($request_vars) {
- if (!is_user_logged_in()){
- $request_vars['s'] = "请先登录";
- }
- if (!empty($request_vars['s']) && iconv_strlen($request_vars['s'],"UTF-8")>5) {
- $request_vars['s'] = "搜索词太长";
- }
- $a=array("色情","赌博","政治");
- for($i=0;$i<count($a);$i++){
- if(stristr($request_vars['s'],$a[$i])!=false){
- $request_vars['s'] = "非法搜索";
- //header('HTTP/1.1 404 No Found');
- //exit;
- break;
- }
- }
- return $request_vars;
- }
- add_filter('request', 'dmd_search_filter');
需要过滤的关键词自行添加,注意:过滤词尽量大于 2 个字长度越短越好,这里进行完全匹配,因此过滤词越长越难过滤,一个字将过滤很多搜索,建议不要使用 1 个字。
当然如果你觉得使用搜索页显示搜索黑名单不明显,也可以直接返回 404,将上面代码中屏蔽内容打开即可。
- 1、本站大部分内容均收集于网络,若内容侵犯到您的权益,请发送邮件至:service@wuyanshuo.cn,我们将第一时间处理!
- 2、本站资源所需价格并非资源售卖价格,是收集、整理、编辑以及本站运营的适当补贴,并且本站不提供任何免费技术服务。
- 3、所有资源仅限参考和学习,版权归原作者所有,更多请阅读无言说网络服务器协议。