WordPress限制搜索关键词实现搜索黑名单

昨天有位站长问我能不能限制WordPress的搜索关键词,因为有人利用他的网站搜索色情词汇,本来正常搜索没有影响的,但是在部分网站中,搜索关键词产生的搜索页会被搜索引擎收录,实现推广功能。

WordPress的关键词搜索限制实现起来还是比较简单的,最简单的要数直接修改主题搜索文件了,在接收关键词时先处理再给WordPress进行搜索。但这样不利于后期更新主题,于是我选择下面这种利用WordPress过滤器实现。

//https://www.wwttl.com/108.html
//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,这就不要找我了,自行解决,解决不了的请带价来询!

WordPress限制搜索关键词实现搜索黑名单

如果你想过滤部分关键词,请使用如下代码。

//https://www.wwttl.com/108.html 
//WordPress限制搜索关键词实现搜索黑名单
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. 运维系列Nginx:设置/白名单IP限制

    2023-12-10 19:52:02       63 阅读
  2. 高亮搜索中的关键字怎么实现

    2023-12-10 19:52:02       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-10 19:52:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-10 19:52:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-10 19:52:02       87 阅读
  4. Python语言-面向对象

    2023-12-10 19:52:02       96 阅读

热门阅读

  1. LeetCode452. Minimum Number of Arrows to Burst Balloons

    2023-12-10 19:52:02       57 阅读
  2. TCP一对一聊天

    2023-12-10 19:52:02       65 阅读
  3. 清理oracle库30亿的表后,释放删除空间

    2023-12-10 19:52:02       48 阅读
  4. MySQL、Oracle笔记

    2023-12-10 19:52:02       53 阅读
  5. vue中滚轮缩放事件

    2023-12-10 19:52:02       57 阅读
  6. axios封装、二次封装

    2023-12-10 19:52:02       72 阅读
  7. 网络视频服务器的作用是什么?

    2023-12-10 19:52:02       63 阅读
  8. TCP聊天

    TCP聊天

    2023-12-10 19:52:02      51 阅读
  9. STM32用flash保存参数实现平衡擦写的一种方法

    2023-12-10 19:52:02       42 阅读
  10. 三元组的快速转置(数据结构实训)

    2023-12-10 19:52:02       45 阅读
  11. MyBatis-xml版本

    2023-12-10 19:52:02       65 阅读
  12. RabbitMQ安装在Linux系统详细教程

    2023-12-10 19:52:02       61 阅读
  13. OD机考真题搜集:宜居星球改造计划

    2023-12-10 19:52:02       57 阅读
  14. [ES]ElasticSearch强转日期的时区问题

    2023-12-10 19:52:02       53 阅读