我有一个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;
}
想法?
答案 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;
}