有两个步骤可以实现此功能:
在主循环中添加一个计数器,以便检查输出的帖子数量。
如果计数器小于3,请再次运行查询并输出。
因此,对于步骤1,在循环之前设置一个计数器,并在每次循环运行时递增,如下所示:
<?php
// create your counter variable
$counter = 0;
if (have_posts()) :
while (have_posts()) : the_post();
// add 1 to your counter, as 1 post was just output
$counter++;
// (display the posts)
endwhile;
endif; ?>
第二步:检查计数器变量,然后根据需要运行另一个查询。
<?php
// if counter is less than 3, run a separate query
if($counter < 3) {
// get the ID of the current Tag
$tag_id = get_queried_object()->term_id;
// set up query arguments
$args = array(
// only pull Posts
\'post_type\' => \'post\',
// don\'t pull Posts that have the current Tag - prevents duplicates
\'tag__not_in\' => array("$tag_id"),
// set how many Posts to grab
\'posts_per_page\' => 3
);
$extraPosts = new WP_Query($args);
if($extraPosts->have_posts()):
while($extraPosts->have_posts()) : $extraPosts->the_post();
// display the posts)
endwhile;
endif;
} ?>
如果您希望标记存档始终显示3篇文章,则在“If”语句的开头部分之后,计算要获取的数量:
$numberToGet = 3 - $counter;
然后设置
\'posts_per_page\' => "$numberToGet"
所以它是动态的。