如何显示post_type中的所有帖子

时间:2017-07-02 12:47:40

标签: wordpress custom-post-type

我需要在index.php中显示来自不同post_type(书籍,电影,音乐)的所有帖子

像这样:

BOOKS    
  Book 1 
  Book 2 
  Book 3 
  ...

MOVIES
  Movie 1
  Movie 2
  Movie 3
  ...

MUSIC
  Music 1
  Music 2
  Music 3
  ...

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我建议你编辑index.php模板页面并为每个帖子类型运行多个wp_queries。

// Setup arguments.
$args = array(
// Get the "movies" post type.
'post_type' => 'movies',
'post_status' => 'publish'
);
// Instantiate new query instance.
$my_query = new WP_Query( $args );
if($my_query->have_posts()):
while($my_query->have_posts()):
$my_query->the_post();
// Do your stuff here
endwhile;
endif;
wp_reset_query();
// Setup arguments.
$args = array(
// "music" post type.
'post_type' => 'music',
'post_status' => 'publish'
);
// Instantiate new query instance.
$my_query = new WP_Query( $args );
if($my_query->have_posts()):
while($my_query->have_posts()):
$my_query->the_post();
// Do your stuff here
endwhile;
endif;
wp_reset_query();

答案 1 :(得分:0)

前段时间我想做类似的事情,我遇到了这个answer by Tomás Cot

底线:

您需要指定要在post_type1上显示post_type2post_type3line #3的位置显示哪些类型,如果需要,您可以添加更多。

function add_custom_post_type_to_query( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'post_type', array('post', 'article', 'post_type1', 'post_type2', 'post_type3') );
    }
}
add_action( 'pre_get_posts', 'add_custom_post_type_to_query' );

结果?

您添加的所有帖子类型都会添加到index.php帖子查询中。 它们将像存档中的标准WordPress帖子一样显示