因為wordpress自帶的搜索功能結果排序非常糟糕,在站點文章多的時候很難通過搜索找到自己要找的內容,不少人已經使用 google cse 來提供站內搜索。但是wordpress默認的搜索功能依然沒有禁用掉,這會留下隱患。wordpress在進行搜索的時候效率非常低,如果有人利用這個缺陷對你的博客發(fā)起很多搜索請求的話,你的服務器很有可能宕機。因此在站內搜索已經有更好的替代品的情況下,我們應該禁止在前臺使用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){
if(!is_admin()){
return '';
}else{
return $arg;
}
}
添加完代碼以后,輸入wordpress默認的搜索地址 http://yourdomain.com/?s=xxxx 將顯示找不到任何文章(提示語因主題而異),也不會對數據庫產生搜索查詢。但是在后臺的所有文章界面我們依然可以進行搜索。