在当前类别的单个页面上列出随机帖子

时间:2013-01-07 作者:Robertin

我想在同一个类别的单页上随机显示8篇文章。

<?php
    global $post;
    $categories = get_the_category();
    foreach ($categories as $category) :
    $args = array( \'numberposts\' => 8, \'orderby\' => \'rand\', \'category\' => $category->term_id);
    var_dump($category->term_id);
    $rand_posts = get_posts( $args );
    foreach( $rand_posts as $post ) :
    ?>

    <li><?php the_post_thumbnail(); ?><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><span><?php the_title(); ?></span></a></li>
    <?php endforeach; ?>
    <?php endforeach; ?>
。。但如果帖子有2个或更多类别,它会列出16/24/32个帖子。我希望任何人都能帮助我。谢谢

1 个回复
SO网友:Mateusz Hajdziony

这是因为您使用foreach 在帖子类别上循环。通过去掉foreach 循环和使用$categories[0]->term_id 作为您的category 在查询参数中。

您还可以尝试获取所有类别的所有类别ID,并将其作为逗号分隔的列表包含在内。这将从与您的帖子相关的所有类别中随机返回8篇帖子。更多信息,请参阅get_posts 作用

结束

相关推荐