Wordpress-禁用搜索功能
出于性能原因,我在functions.php中添加了以下代码,以禁用wordpress站点上的存档/爬网/url搜索:Wordpress-禁用搜索功能,wordpress,search,Wordpress,Search,出于性能原因,我在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
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;" ) );
这可以很好地防止搜索,但也可以防止在管理区域搜索帖子
有没有一种方法可以禁用对用户的搜索,但仍然允许管理员进行搜索
目前,我的解决方法是删除此代码,执行必要的搜索,然后将其粘贴回去。您是否尝试了
is_admin
功能?如果试图显示仪表板或管理面板,它将返回true。因此,将此函数放在代码中,它不会在仪表板中启动:
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; });
或:
您是否尝试了“管理”功能?如果试图显示仪表板或管理面板,它将返回true。因此,将此函数放在代码中,它不会在仪表板中启动:
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; });
或:
PHP7.2不推荐使用create_函数+ 这似乎有效(放入function.php):
PHP7.2不推荐使用create_函数+ 这似乎有效(放入function.php):
function fb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars['s'] = false;
$query->query['s'] = false;
if ( $error == true )
$query->is_404 = true;
}
}
add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', function() { return null;} );