我想创建一个循环来抓取最近的三个帖子并显示每个帖子的标题和类别。我所拥有的循环目前正在为每个帖子获取正确的值,但是foreach循环也将所有之前的帖子的值附加到第三个帖子,它显示它除了具有的所有类别之外还包含所有先前帖子的类别。第三篇文章。
为了进一步说明 - 如果Post1被分类为A和B而Post2被归类为C和D,则Post2显示它被归类为ABCD。谁能看到我做错了什么?提前谢谢。
<section class="blog-index">
<?php
$args = array('showposts' => 3);
$recent = new WP_Query( $args );
if( $recent->have_posts() ):
echo '<div class="blog-index-list">';
while ( $recent->have_posts()) : $recent->the_post();
$categories = get_the_category();
foreach($categories as $category) {
$cat .= $category->name;
};
echo '<article>
<h2><a href="'.get_the_permalink().'">' .get_the_title(). '</a></h2>
<p class="post-cats"> ' . $cat . '</p>
<img src="'.get_the_post_thumbnail().'' .
'<div class="blog-index-button et_pb_button_module_wrapper et_pb_module et_pb_button_alignment_center">
<a class="et_pb_button et_pb_button_3 et_pb_module et_pb_bg_layout_light" href="' . get_the_permalink() . '">READ POST</a>
</div>
</article>';
endwhile;
echo '</div>';
endif;
wp_reset_query();
?>
</section>
答案 0 :(得分:1)
在我看来,你不会在抓取帖子之间清除你的$ cat变量。当你使用。=将数据附加到$ cat时,你需要在每次调用foreach之间设置$ cat =“”。