我使用的是 WordPress 6.2.2。我有一个查询,可以检索给定元值的内容。
$query_posts_for_board_game = new WP_Query(
array(
'post_type' => ['reviews','articles', 'topics'],
'posts_per_page' => 5,
'meta_query' => array(
// left empty for brevity
),
)
);
返回以下列表:
Expanding Everdell: A Ranking <-- article
Everdell Digital Game Review <-- review
Board Games with Animeeples <-- topic
Everdell Newleaf & Mistwood Game Video Review <-- review
Everdell Game Review <-- review
我想强制将评论放在列表中的第一位,然后是文章,然后是主题。我知道我可以通过将其添加到我的查询中来调整顺序:
'orderby' => 'post_type',
'order' => 'desc',
但这会将主题按字母顺序倒序排列在评论之前。 PHP/WordPress 是否允许我们使用动态 orderby 语句?如果您想查看更多示例,请点击以下页面的链接:
https://www.meeplemountain.com/trending-board-games/
虽然我仍然认为有更好的方法,但我最终的做法是将查询分成两部分。我正在运行一个查询来获取
reviews
,另一个查询为 articles
和 topics
(按升序排列,以便文章排在前面),然后 array_merge
将这两个查询放在一起。由于我将组合数组存储在瞬态中,因此一旦被缓存,结果就一样快。