2017-08-09 34 views
0

私はパフォーマンス上の理由から、私のワードプレスのサイトでの検索、アーカイブ/クロール/ URLを無効にするのfunctions.phpするために、次のコードを追加しました:Wordpressの - を無効に検索機能

function disable_search($query, $error = true) { 
    if (is_search()) { 
$query->is_search = false; 
$query->query_vars[s] = false; 
$query->query[s] = false; 
// to error 
if ($error == true) 
$query->is_404 = true; 
    } 
} 

add_action('parse_query', 'disable_search'); 
add_filter('get_search_form', create_function('$a', "return null;")); 

これは、検索を防ぐために完璧に動作しますが、また、管理領域内の投稿の検索もできません。

ユーザーの検索を無効にする方法はありますが、管理者は検索を許可しますか?

現時点では、このコードを削除し、必要な検索を実行してから貼り付けます。

答えて

0

is_adminを試しましたか?ダッシュボードまたは管理パネルが表示されようとしている場合、はtrueを返しますです。したがって、この関数をコードに追加すると、Dashboardで起動されません。

function disable_search($query, $error = true) 
{ 
    if (is_search() && !is_admin()) { 
     $query->is_search = false; 
     $query->query_vars[s] = false; 
     $query->query[s] = false; 

     // to error 

     if ($error == true) $query->is_404 = true; 
    } 
} 

add_action('parse_query', 'disable_search'); 
add_filter('get_search_form', create_function('$a', "return null;")); 

または:

function disable_search($query, $error = true) 
{ 
    if (is_search()) { 
     $query->is_search = false; 
     $query->query_vars[s] = false; 
     $query->query[s] = false; 

     // to error 

     if ($error == true) $query->is_404 = true; 
    } 
} 

if(!is_admin()){ 
    add_action('parse_query', 'disable_search'); 
    add_filter('get_search_form', create_function('$a', "return null;")); 
} 
+0

天才!どうもありがとうございました。これは私の問題を解決します。 – Justin

+0

ありがとう、私の答えをupvoteして受け入れることができますか?ほんとうにありがとう。 –