获取最后X个帖子,但按时间升序排列

时间:2017-02-05 作者:PKHunter

我有一些“事件”自定义帖子类型。在我的网站主页上,我想显示最后的X个事件,但按时间升序(最早的第一个)。我陷入困境的地方是,要获取“last X”条目,我需要将事件日期字段按SQL中的DESC顺序排列,但在检索到这些帖子之后,我需要按升序排列它们。

// get posts
$posts = get_posts(array(
    \'post_type\'         => \'events\',
    \'posts_per_page\'    => 2,
    \'meta_key\'          => \'from_datetime\',
    \'orderby\'           => \'meta_value\',
    \'order\'             => \'DESC\'
));
在这里from_datetime 是使用ACF的自定义字段。这是可行的。这让我了解了最后两个事件。但它们是按时间降序排列的,这意味着进一步的事件是第一个。

有没有一种方法可以从get\\u posts本身按时间的升序获取最后2个事件,而不必从结果中求助于数组或其他东西?

1 个回复
SO网友:CodeMascot

您是否使用尝试了最后一个参数ASC 喜欢\'order => \'ASC\' ? 我想这会解决你的问题。所以您的完整代码如下-

// get posts
$posts = get_posts(array(
    \'post_type\'         => \'events\',
    \'posts_per_page\'    => 2,
    \'meta_key\'          => \'from_datetime\',
    \'orderby\'           => \'meta_value\',
    // Here is the main trick happening.
    \'order\'             => \'ASC\'
));
希望这有帮助。

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post