1

我想用

$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
4

2 回答 2

2

就个人而言,如果帖子的顺序以及您的 ID 号要那么严格,我可能会避免使用 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
}
?>

否则,由于帖子没有像页面那样的菜单顺序选项,您可能必须设置自定义字段并为其赋值(较低的数字优先于较高的数字)。然后你可以做这样的事情:

<?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'));
?>

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

于 2012-10-01T15:24:44.117 回答
-1

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

于 2012-10-01T20:21:07.623 回答