正如我在评论中已经提到的,您必须使用pre_get_posts
将自定义帖子类型添加到存档页面。
但有一件事你必须记住,这里有两个归档页面,归档。php和归档事件。php,所以is_archive()
将在两个页面上都返回true,这将改变两个页面。您需要排除存档事件。函数中的php。为此,您需要利用is_post_type_archive()
检查并排除该特定页面
对于可用于的所有可能参数pre_get_posts
, 去看看WP_Query
function cpt_in_archive($query) {
if ( !is_admin() && $query->is_main_query() && $query->is_archive() && $query->!is_post_type_archive( \'event\' )) {
$query->set( \'post_type\', array( \'post\', \'event\' ) );
$query->set( \'orderby\', \'date\' );
}
}
add_action( \'pre_get_posts\' , \'cpt_in_archive\' );