2017-08-09 44 views
0

我已經添加了下面的代碼添加到functions.php禁用存檔/檢索/ URL在我的wordpress網站性能的原因搜索: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我的答案,並接受?對此,我真的非常感激。 –