您可以在所有类别中运行foreach循环,然后查询每个类别中的最新帖子。您可以通过将主页设置为静态页面,然后将其放入自定义模板来实现这一点。这只是一个基本示例:
$categories = get_the_categories();
foreach ( $categories as $cat ) {
$exclude = isset( $GLOBALS[\'current_id\'] ) ? $GLOBALS[\'current_id\'] : null;
$args = array(
\'cat\' => $cat->term_id,
\'posts_per_page\' => 4,
\'post__not_in\' => array( $exclude ),
\'no_found_rows\' => true,
);
echo \'<h3>\'. $cat->name . \'</h3>\';
$home_q = new WP_Query( $args );
while ( $home_q->have_posts() ) : $home_q->the_post();
$GLOBALS[\'current_id\'] = get_the_ID();
// Do loop stuff here......
endwhile; wp_reset_postdata();
}
The
$GLOBALS[\'current_id\']
将保存一个帖子ID数组,以便在每个附加查询中使用,以防止帖子在多个类别中显示超过1次。将“no\\u found\\u rows”设置为true将减少查询的负担,因为它不会获取所有用于分页和其他内容的帖子。