首先查询具有所选帖子ID的帖子

时间:2019-07-29 作者:Talk Nerdy To Me

有没有一种方法可以让我通过首先列出的帖子ID指定的几个帖子来获取最新的帖子?

根据docs, 这个orderorderby 参数可以作为数组传递,所以理论上我想知道这是否可能。

在MySQL查询术语中,它本质上会产生如下结果

SELECT * FROM wp_posts ORDER BY ID=12345 desc, ID=12543 desc, post_date desc
在这里,它返回的是12345,然后是12543,其余的则先订购最新的。

1 个回复
SO网友:Louis S

我不确定在Wordpress中的单个查询中是否可以做到这一点。您可以将其分为两部分,如下所示:

<ul>
<?php
global $post;

// Get posts by selected post ids
$args = array(
    \'posts_per_page\' => -1,
    \'post__in\'       => [12345,12543],
    \'orderby\'        => \'post__in\'
);
$myposts = get_posts($args);
foreach ($myposts as $post) : setup_postdata($post); ?>
    <li>
    <?php echo get_the_ID(); ?>
    </li>
<?php endforeach;
wp_reset_postdata();

// Get latest posts excluding selected post ids
$args = array(
    \'posts_per_page\' => -1,
    \'exclude\'        => [12345,12543]
);

$myposts = get_posts($args);
foreach ($myposts as $post) : setup_postdata($post); ?>
    <li>
    <?php echo get_the_ID(); ?>
    </li>
<?php endforeach;
wp_reset_postdata();
?>
</ul>

相关推荐

‘POSTS_PER_PAGE’=>‘10’不显示任何帖子

每个人我已经创建了一个自定义的\\u post\\u类型;function create_post_type_veranstaltungen() { register_post_type(\'veranstaltungen\', array( \'label\' => __(\'Veranstaltungen\'), \'public\' => true, \'show_ui\' => true,&#