如何在不按日期排序的情况下检索WP_Query

时间:2012-10-01 15:13:27

标签: wordpress

我想用

$ps = "9126,8955,8554,8620,8825,8912,8937,8813,9054,9022";
$recent = new WP_Query( array('post__in' => explode(',', $ps)) );

按ID检索帖子,我这样做,结果按发布日期排序,但我希望按此顺序在此示例中检索相同的ID:

9126,8955,8554,8620,8825,8912,8937,8813,9054,9022

2 个答案:

答案 0 :(得分:2)

就个人而言,如果帖子的顺序和你的身份证号码都是严格的,我可能会避免使用WP_Query:

<?php
$ids = array(9126,8955,8554,8620,8825,8912,8937,8813,9054,9022);
foreach($ids as $id)
{
    $post = get_post($id);
    setup_postdata($post);
    ?>
    <!-- YOUR HTML HERE -->
    <?php
}
?>

否则,由于Posts没有像Pages那样的任何菜单顺序选项,您可能需要设置一个自定义字段并给它一个值(较低的数字优先于较高的数字)。然后你可以做这样的事情:

<?php
$ids = array(9126,8955,8554,8620,8825,8912,8937,8813,9054,9022);
$recent = new WP_Query(array('post__in' => $ids, 'orderby' => 'meta_value_num', 'meta_key' => 'postOrder', 'order' => 'ASC'));
?>

这第二个选项未经测试,我不能保证它会立即起作用,但它应该让你开始。祝你好运。

答案 1 :(得分:-1)

将来在wordpress 3.5中你可以使用:'orderby'=>'post__in'