WP Query以数字顺序随机选择显示的帖子

时间:2013-03-26 12:52:15

标签: mysql wordpress

我使用query_posts使用orderby = rand从自定义帖子类型返回6个ramdom帖子。

这很好用。然而。一旦查询返回了帖子,我就需要按照数字顺序对它们进行排序。

我使用的当前代码如下所示:

<?php query_posts('post_type=my_post_type&orderby=rand&showposts=6'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

Do stuff

<?php endwhile; else: ?>
<?php endif; ?>

所以我需要随机选择6个帖子然后需要按数字顺序排序。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

一些元代码对你来说,实际上让你的工作需要一些挖掘,但这有望在正确的轨道上进行。

这里的一般想法是你只需要从query_posts获取id然后重新排序它们,允许你根据需要输出它们。

<?php 
    query_posts('post_type=my_post_type&orderby=rand&showposts=6'); 

    // Create your result array
    $postArray = array();

    if ( have_posts() ) : while ( have_posts() ) : the_post(); 

        $postArray[] = /*POST ID GOES HERE*/

    endwhile; else:
    endif;

    // Now sort it
    sort($postArray,SORT_NUMERIC);

    // Now iterate over $postArray outputting post id $postArray[0] -> $postArray[n]

?>

另一种选择可能是使用$postArray[/*POST ID*/] = /* OUTPUT */;填充$ postArray,然后迭代$ postArray,因为如果使用数字键,PHP可能会 自动对其进行排序。