На моем сайте я перечисляю все сообщения в соответствии с тегами. Если сообщение относится к категории, я хочу, чтобы категория отображалась вместо сообщения. Но я хочу, чтобы каждая категория отображалась только один раз за первый пост в ней.
Я пробовал следующее, но если у меня есть категория с 3 сообщениями, она будет перечислять ее 3 раза (для каждого сообщения)
$post_thumbnail_id = get_post_thumbnail_id( $post_id ); $imgmeta = wp_get_attachment_metadata( $post_thumbnail_id );
// check to see if in a category which is not > uncategorized or homepage items
if (in_category('uncategorized') || in_category('item_left') || in_category('item_middle') || in_category('item_right')) {
// check if the image is portrait or horizontal
if ($imgmeta['width'] > $imgmeta['height']) { ?>
<div class="img_box_land sm_title img_box">
<a href="<?php the_permalink()?>?tagName=<?php single_tag_title(); ?>">
<div class="red_bg">
<?php the_post_thumbnail(); ?>
</div>
<p>
<?php the_title(); ?>
</p>
</a>
</div>
<?php } else { ?>
<div class="img_box_port sm_title img_box">
<a href="<?php the_permalink()?>?tagName=<?php single_tag_title(); ?>">
<div class="red_bg">
<?php the_post_thumbnail(); ?>
</div>
<p>
<?php the_title(); ?>
</p>
</a>
</div>
<?php }
} else {
// this is for posts in a category
// check if the image is portrait or horizontal
$category = get_the_category();
if ($imgmeta['width'] > $imgmeta['height']) { ?>
<div class="img_box_land sm_title img_box stacked">
<a href="<?php echo get_category_link($category[0]); ?>?tagName=<?php single_tag_title(); ?>">
<div class="red_bg">
<?php the_post_thumbnail(); ?>
</div>
<p>
<?php echo $category[0]->cat_name; ?>
</p>
</a>
</div>
<?php } else { ?>
<div class="img_box_port sm_title img_box stacked">
<a href="<?php echo get_category_link($category[0]); ?>?tagName=<?php single_tag_title(); ?>">
<div class="red_bg">
<?php the_post_thumbnail(); ?>
</div>
<p>
<?php echo $category[0]->cat_name; ?>
</p>
</a>
</div>
<?php } } ?>
<?php endwhile; endif; ?>
Полагаю, проблема в том, что он внутри цикла, но я не знаю, как заставить его работать иначе.