隐藏档案页面上的自定义帖子类型

时间:2018-10-17 21:16:26

标签: php wordpress custom-post-type archive

我有一个wordpress存档页面,该页面显示了我实际上想要隐藏的自定义帖子类型。

我使用了CPT UI插件来创建帖子类型“事件”

在我的博客上,我有一个标记为“特色”的类别(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 :(得分:0)

通过$query->set( 'post_type', array('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;
}