如果循环没有返回帖子,如何用文本隐藏div?

时间:2012-02-18 02:18:14

标签: php css wordpress html echo

第一个循环根据主标记检索与当前帖子相关的帖子。下面显示的第二个循环根据辅助标记获取帖子。如果第一个循环显示帖子,则排除第二个循环检索的帖子,以便没有重复的帖子。

如果没有符合当前帖子标签的帖子,则不会显示任何内容。这是我遇到问题的地方。我需要<div id="relatedheader">内部(或外部)的额外<ul>元素来显示标题文字&#34;相关帖子&#34; (某些样式应用为背景颜色)。如果没有匹配的帖子,则不会显示,但此时它会返回标题&#34;相关帖子&#34;对于查询检索的每个帖子。我可以看到,此时显示的每个帖子都会显示出来。我无法看到如何更改代码以使其仅在帖子上方显示一次?

  
<ul id="related">       
<?php
$tags = wp_get_post_tags($post->ID);
if ($tags) {
  $first_tag = $tags[1]->term_id;
  $args=array(
    'tag__in' => array($first_tag),
    'post__not_in' => array($post->ID),
    'showposts'=>3, //Display this number of related posts
    'ignore_sticky_posts'=>1
   );
  $my_query = new WP_Query($args);
  if( $my_query->have_posts() ) {
      while ($my_query->have_posts()) : $my_query->the_post(); if (!in_array($post->ID, $ids)) {; echo '<div id="relatedheader">Related posts</div>'; ?>
      <li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
      <?php } endwhile;
  }
}
?></ul>

1 个答案:

答案 0 :(得分:0)

将您的逻辑与演示文稿分开。将收集帖子和相关帖子的所有代码移动到顶部,或移动到不同的文件或函数,并将数据存储在数组中。然后,当您到达输出HTML的部分时,您已经知道是否有相关的帖子,并且您可以使用if条件来决定是否输出标题。