Пользовательский поиск типа сообщения должен работать для интерфейса, а не администратора - PullRequest
0 голосов
/ 27 сентября 2018

Я настроил поиск для конкретного Custom Post Type с помощью ловушки действий pre_get_posts.Он работает нормально, но проблема в том, что он также применяется в поиске сообщений wp-admin.

function basket_pre_get_posts($query) {
    if( is_search() && $query->is_main_query() ) {
        $query->set('post_type', 'basket');
    } 
}
add_action( 'pre_get_posts', 'basket_pre_get_posts' );

пользовательский тип сообщения: basket

Ответы [ 3 ]

0 голосов
/ 27 сентября 2018

Вы должны поставить это условие как:

if( is_admin() ) {
 return;
}

Если это администратор, вернитесь без применения.

function basket_pre_get_posts($query) {

   if( is_admin() ) {
     return;
    }

    if( is_search() && $query->is_main_query() ) {
        $query->set('post_type', 'basket');
    } 
}
add_action( 'pre_get_posts', 'basket_pre_get_posts' );
0 голосов
/ 03 октября 2018
You just need to check `is_admin` before applying filter.

function basket_pre_get_posts($query) {

    if( is_admin() ) {
        return;
    }
    if( is_search() && $query->is_main_query() ) {
        $query->set('post_type', 'basket');
    } 
}
add_action( 'pre_get_posts', 'basket_pre_get_posts' );
0 голосов
/ 27 сентября 2018

Добавьте условие is_admin в вашу функцию, это остановит запуск функции в административной области

function basket_pre_get_posts($query) {
    if ( !is_admin() ) {
       if( is_search() && $query->is_main_query() ) {
            $query->set('post_type', 'basket');
       } 
    }
}
add_action( 'pre_get_posts', 'basket_pre_get_posts' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...