WordPress 6.2.2我有一个查询,它检索给定Meta值的内容。
$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
型
x1c 0d1x的数据
我想强制评论在列表中排在第一位,然后是文章,然后是主题。我知道我可以通过在查询中添加以下内容来调整顺序:
'orderby' => 'post_type',
'order' => 'desc',
型
但是,这将主题放在评论之前,按字母顺序颠倒。PHP / WordPress允许我们使用动态orderby语句吗?如果你想看更多的例子,这里有一个链接到有问题的页面:第一个月
2条答案
按热度按时间lawou6xi1#
没有
'orderby' => 'post_type'
。使用这个代替
'orderby' => 'type'
。order-orderby-parameters
7rtdyuoh2#
虽然我仍然认为有一种更好的方法,但我最终这样做的方法是将我的查询分成两部分。我运行一个查询来获取
reviews
,另一个查询来获取articles
和topics
(以升序排列,以便文章先出现),然后array_merge
-将这两个查询合并在一起。由于我将组合数组存储在一个 transient 中,因此一旦缓存,结果也同样快。