скрыть пользовательский тип сообщения на странице архивов - PullRequest
0 голосов
/ 18 октября 2018

У меня есть страница архивов WordPress, на которой отображается созданный мной тип поста, который я на самом деле хочу скрыть.

Я использовал плагин CPT UI для создания типа записи "Событие"

В моем блоге есть категория с меткой Featured (website.com/category/featured/), ина этой странице Избранных категорий у меня есть несколько событий CPT, которые я не хочу показывать.

Я попробовал следующий код в моем файле functions.php, который не работал:

add_action( 'pre_get_posts', 'exclude_cpt' );
function exclude_cpt( $query ) {
    if ( $query->is_category('featured') ) {
        $query->set( 'post_type', array('event') );
    }
    return $query;
}

Мысли ??

1 Ответ

0 голосов
/ 18 октября 2018

По $query->set( 'post_type', array('event') ); Вы не исключаете События.Вы включаете его.

Чтобы исключить события, вы должны передать все типы сообщений, которые у вас есть и хотите показать, кроме 'event'

, как это.

, если у вас нет пользовательского типа сообщения.

$query->set('post_type', array( 'post', 'page' ) );

или

$query->set('post_type', array( 'post', 'page', 'post_type_1', 'post_type_2' ) );

, поэтому вашкод должен выглядеть следующим образом

add_action( 'pre_get_posts', 'exclude_cpt' );
function exclude_cpt( $query ) {
    if ( $query->is_category('featured') ) {
        $query->set( 'post_type', array( 'post' ) ); // this will display only posts and pages
    }
    return $query;
}
...