首页 > 解决方案 > 在档案页面上隐藏自定义帖子类型

问题描述

我有一个 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;
}

想法??

标签: phpwordpresscustom-post-typearchive

解决方案


$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;
}

推荐阅读