我有一些“事件”自定义帖子类型。在我的网站主页上,我想显示最后的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个事件,而不必从结果中求助于数组或其他东西?
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\'
));
希望这有帮助。