在循环中实现“此条目没有相关帖子”吗?

时间:2011-10-20 作者:japanworm

对于我的相关帖子,我设置了一个可滚动的容器。我需要HTML在循环之外,否则如果没有相关的帖子显示,布局会很混乱(只有在有相关帖子显示的情况下,循环内才会缺少div)。

因此,我唯一的选择是在容器中显示一条消息,该消息仅在没有相关帖子显示时显示。类似于:“抱歉,此条目没有相关帖子”

不幸的是,我不知道如何修改代码/如何将其实现到当前代码中:

<h2>Related Posts</h2>                      

<!-- "previous page" action -->
<a class="prev browse left"></a>


<!-- root element for scrollable -->
<div class="scrollable" id=chained>  

    <!-- root element for the items -->
    <div class="items">

<?php

 $tags = wp_get_post_tags($post->ID);
 if ($tags) {
     $tag_ids = array();
     foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;

 $args=array(
\'tag__in\' => $tag_ids,
\'post__not_in\' => array($post->ID),
\'showposts\'=>12, // get all the posts at once, then split them up afterwards.
\'ignore_sticky_posts\' => 1
 );

$posts_per_block = 4;

$my_query = new wp_query($args); ?>



<?php
if( $my_query->have_posts() ) : while ($my_query->have_posts()) : $my_query->the_post();
if ( ($my_query->current_post) == 0 ) {
    echo \'<div>\';
}
elseif ( ( $my_query->current_post ) % $posts_per_block == 0 ) {
    echo \'</div><div>\'; //close and open a new div every nth post
}
?>

<div class="relatedPosts"><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_post_thumbnail(array(120,80)); ?></a>
<div class="relatedPosts_title"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></div></div>

<?php

if ( ( $my_query->current_post + 1) == ( $my_query->post_count ) ) {
    echo \'</div>\'; //close the block if you run out of posts
} ?>

<?php
endwhile; endif;
?>



<?php } // end if($tags) ?>
  </div>

 </div>

<!-- "next page" action -->
<a class="next browse right"></a>
Here\'s 没有任何标记的示例页面。

Here\'s 标签和相关帖子的示例。

提前非常感谢任何能帮我解决这个问题的人。

1 个回复
最合适的回答,由SO网友:Michael 整理而成

我仍然看不出代码和问题与您最初的主题有多大的不同;

但是,如果没有找到帖子,尝试将文本添加到循环的典型“else”位置;更改此行:

<?php 
endwhile; endif; 
?>
收件人:

<?php 
endwhile; 
else :
echo \'<h3 class="no-related-posts">sorry but there are no related posts for this entry</h3>\';
endif; 
?> 
提供css类是为了简化文本的选择性样式。

edit:

如果贴子确实有标签,但没有具有相同标签的相关贴子,则上述情况适用。它需要保持原位。

此外,当没有标签时,应该有一条消息;更改此行:

<?php } // end if($tags) ?>   
收件人:

<?php } else { //if no tags, show message
echo \'<h3 class="no-related-posts">sorry but there are no related posts for this entry</h3>\';
} // end if($tags) 
?>  

结束

相关推荐

Offset for Loop

我想为我的相关职位抵消4个职位。我正在使用Flowplayer的jQuery工具滚动,所以我希望人们能够滚动浏览最新的4篇帖子,然后是接下来的4篇帖子等等。我尝试了类似的方法,但不断收到错误消息:<h2>Related Posts</h2> <!-- \"previous page\" action --> <a class=\"prev browse left\"></a