正如我在评论中所说的,您希望使用pre_get_posts
将自定义帖子类型添加到作者存档页。此外,一旦完成,就可以很容易地对帖子进行排序,只需运行主循环两次,一次只将自定义帖子类型的帖子发送到屏幕,第二次只需post
职位。
以下是一个示例:(NOTE: 这都是未经测试的,可能有问题,但这应该会让你非常接近,如果不是完全达到。此外,还需要PHP 5.4+)
add_action( \'pre_get_posts\', function ( $q )
{
if ( !is_admin() // Run this only on front end queries
&& $q->is_main_query() // Only run this on the main query
&& $q->is_author() // Run this only on author archive pages
) {
$q->set( \'post_type\', [\'post\', \'custom_post_type_name_here\'] );
}
});
然后在模板中
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
if ( $post->post_type == \'custom_post_type_name\' ) {
// Output posts from your custom post type
}
} // endwhile
rewind_posts(); // This will reweind posts to the first post so we can rerun the loop
while ( have_posts() ) {
the_post();
if ( $post->post_type == \'post\' ) {
// Output posts from the defualt post post type
}
} // endwhile
} // endif