我尝试运行自定义帖子类型查询以匹配以下条件:
首先按年份降序对电影进行排序,
然后按名称标题(在“年内”进行排序)。
所需的输出:
电影标题A,2006
电影标题Z,2006
...
电影标题A,1996
电影标题Z,1996
我使用以下代码:
$wp_query = new WP_Query();
$wp_query->query( array(
'post_type' => 'movies',
'distribution' => 'companyA',
'meta_key' => 'year',
'orderby' => 'meta_value_num title',
'order' => 'DESC',
'posts_per_page' => -1,
'post_status' => 'publish',
));
我尝试了几件事,但我只能得到这个“反”结果:
电影A,1996
电影Z,1996
...
电影A,2006
电影Z,2006
如果我更改DESC,ASC,则仅更改标题排序。但我需要将其应用于年份而不是标题。
使用两个orderby值是正确的方法吗?还是我必须使用meta_query或自定义SQL?
提前谢谢!
这是从中得到的SQL查询 $GLOBALS['wp_query']->request
SELECT wp_posts。*
FROM wp_posts
INNER JOIN wp_term_relationships
ON(wp_posts.id = wp_term_relationships.object_id)
INNER JOIN wp_postmeta
ON(wp_posts.id = wp_postmeta.post_id)
WHERE 1 =
AND(wpterm_type )
WHERE 1 =
AND(wpterm
。 ='电影'
AND(wp_posts.post_status ='publish')
AND(wp_postmeta.meta_key ='year')
GROUP BY wp_posts.id
ORDER BY wp_postmeta.meta_value + 0,
wp_posts.post_title DESC