找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1828|回复: 0

[Wordpress] WordPress禁用前台搜索功能

[复制链接]
发表于 2011-10-13 10:51:32 | 显示全部楼层 |阅读模式
本帖最后由 麻辣客串 于 2011-10-13 10:52 编辑

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

WordPress在进行搜索的时候效率非常低,如果有人利用这个 缺陷对你的博客发起很多搜索请求的话,你的服务器很有可能宕机。因此在站内搜索已经有更好的替代品的情况下,我们应该禁止在前台使用WordPress自带的搜索功能,只需在主题的 functions.php 文件里加入下面的代码即可。
  1. add_filter('posts_search', 'disable_search_query_like');
  2.     function disable_search_query_like($arg){
  3.         if(!is_admin()){
  4.             return '';
  5.         }else{
  6.             return $arg;
  7.         }
  8.     }
  9.      
  10.     if(isset($_GET['s'])){
  11.         add_filter('posts_request', 'disable_search_query');
  12.     }
  13.     function disable_search_query($arg){
  14.         echo '<!-- ';
  15.         print_r($arg);
  16.         echo ' -->';
  17.         if(!is_admin()){
  18.             return '';
  19.         }else{
  20.             return $arg;
  21.         }
  22.     }
复制代码
添加完代码以后,输入WordPress默认的搜索地址 http://yourdomain.com/?s=xxxx 将显示找不到任何文章(提示语因主题而异),也不会对数据库产生搜索查询。但是在后台的所有文章界面我们依然可以进行搜索。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|王牌互联

GMT+8, 2024-11-23 02:35 , Processed in 0.035863 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表