我使用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个帖子然后需要按数字顺序排序。任何帮助将不胜感激!
答案 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可能会 自动对其进行排序。