WordPress禁用前台搜索功能

2019-03-24 13:17:36来源: codecto.com 阅读 ()

新老客户大回馈,云服务器低至5折

因为WordPress自带的搜索功能结果排序非常糟糕,在站点文章多的时候很难通过搜索找到自己要找的内容,不少人已经使用 Google CSE 来提供站内搜索。但是WordPress默认的搜索功能依然没有禁用掉,这会留下隐患。

WordPress在进行搜索的时候效率非常低,如果有人利用这个 缺陷对你的博客发起很多搜索请求的话,你的服务器很有可能宕机。因此在站内搜索已经有更好的替代品的情况下,我们应该禁止在前台使用WordPress自带的搜索功能,只需在主题的 functions.php 文件里加入下面的代码即可。

add_filter('posts_search', 'disable_search_query_like');
function disable_search_query_like($arg){
    if(!is_admin()){
        return '';
    }else{
        return $arg;
    }
}
 
if(isset($_GET['s'])){
    add_filter('posts_request', 'disable_search_query');
}
function disable_search_query($arg){
    echo '<!-- ';
    print_r($arg);
    echo ' -->';
    if(!is_admin()){
        return '';
    }else{
        return $arg;
    }
}

添加完代码以后,输入WordPress默认的搜索地址 http://yourdomain.com/?s=xxxx 将显示找不到任何文章(提示语因主题而异),也不会对数据库产生搜索查询。但是在后台的所有文章界面我们依然可以进行搜索。

原文链接:http://codecto.com

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:10款WordPress“联系我们”插件

下一篇:宁哲网络创始人周宁:社区和电子商务实践