最终,这个问题是off-topic, 因为解决方案与WordPress无关。以网格模式输出帖子是一种HTML/CSS 问题,而最佳实践解决方案并不涉及将每三篇帖子放在一个单独的包含<div>
. 即便如此,您也可以使用PHP做您想做的事情(从技术上讲,PHP仍然提出了这个问题off-topic).
我将首先查询一些可以被3整除的帖子,或者设置posts_per_page
可被3整除的数字。你如何做到这一点取决于你是否打电话给一个新的WP_Query()
用于自定义帖子类型循环,或者如果正在筛选pre_get_posts
修改默认查询。无论哪种方式,您都可以使用posts_per_page
查询参数。
然后,您只需在循环中定义一个计数器,并根据需要使用它来关闭/打开div:
<div class="row">
<?php
$counter = 1;
if ( have_posts() ) : while ( have_posts() ) : the_post();
global $wp_query;
the_title();
the_content();
if ( ( 0 == $counter % 3 ) && ( $counter != $wp_query->posts_per_page ) ) {
?>
</div><div class="row">
<?php
}
$counter++;
endwhile; endif;
?>
</div>
条件的第二部分确保在最后一行之后不会得到空div。