首先显示自定义帖子类型帖子,然后显示默认帖子

时间:2015-09-23 作者:Pete

A正常author.php 模板有一个循环,显示所有作者帖子的列表。

我想在这个普通的帖子循环上面再加一个循环,列出所有作者(定义的)CPT帖子。

实际上是这样的

作者配置文件信息

作者CPT帖子

编写普通帖子

1 个回复
SO网友:Pieter Goosen

正如我在评论中所说的,您希望使用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

相关推荐

Increase offset while looping

我正在编写一个自定义帖子插件,它将自定义帖子分组显示为选项卡。每组4个岗位。是否可以编写一个偏移量随每次循环而增加的查询?因此,结果将是:-第一个查询显示从1到4的帖子-第二个查询显示从5到8的帖子-第三个查询显示从9到12的帖子等。 <div class=\"official-matters-tabs\"> <?php $args = array(\'post_type\' => \'official-matters\', \'showp