我有此自定义帖子:
add_action(\'init\', \'eveniment_register\');
function eveniment_register() {
$args = array(
\'label\' => __(\'Evenimente\'),
\'singular_label\' => __(\'Eveniment\'),
\'public\' => true,
\'show_ui\' => true,
\'capability_type\' => \'post\',
\'hierarchical\' => false,
\'rewrite\' => true,
\'supports\' => array( \'title\', \'editor\', \'thumbnail\', \'excerpt\', \'comments\' ),
\'taxonomies\' => array(\'category\',\'post_tag\',\'post_thumbnail\')
);
register_post_type( \'eveniment\' , $args );
}
所有这些自定义帖子都有一个类别
ID=5.
在里面category-5.php
我想显示该类别中的所有自定义帖子。
我是如何在普通帖子中做到这一点的:
while (have_posts()) : the_post();
不适用于自定义帖子。
有什么想法吗?谢谢
最合适的回答,由SO网友:Pieter Goosen 整理而成
不要更改主查询。您可以通过使用pre_get_posts
.退回到类别5中的默认循环。php并将以下内容添加到函数中。php
function include_category_cpt( $query ) {
if ( !is_admin() && $query->is_category( \'5\' ) && $query->is_main_query() ) {
$query->set( \'post_type\', \'eveniment\' );
$query->set( \'post_status\', \'publish\' );
$query->set( \'posts_per_page\', \'-1\' );
$query->set( \'ignore_sticky_posts\', \'1\' );
}
}
add_action( \'pre_get_posts\', \'include_category_cpt\' );
另外,请注意,
caller_get_posts
已长期折旧并替换为
posts_per_page
参考文献