我已将以下代码添加到functions.php中,出于性能原因,在我的wordpress网站上禁用了归档/抓取/ URL搜索:
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;" ) );
Run Code Online (Sandbox Code Playgroud)
这非常适合防止搜索,但也可以防止在管理区域中搜索帖子。
有没有一种方法可以禁止用户搜索,但仍然允许管理员搜索?
目前,我的解决方法是删除此代码,执行必要的搜索,然后将其粘贴回去。
您尝试过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', function(){ return null; });
Run Code Online (Sandbox Code Playgroud)
要么:
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', function(){ return null; });
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1323 次 |
| 最近记录: |