次の条件に一致するカスタム投稿タイプクエリを実行しようとします。
最初に映画を降順で年順に並べ替え、
その後(年の「内部」の順序で)タイトルごとにアルファベット順に並べ替えます。
希望する出力:
映画タイトル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を変更すると、タイトルのソートのみが変更されます。しかし、タイトルではなく年に適用する必要があります。
2つのorderby値を使用する正しい方法ですか?または、meta_queryまたはカスタムSQLを使用する必要がありますか?
事前にTHX!
これが結果のSQLクエリです $GLOBALS['wp_query']->request
SELECT wp_posts。*
wp_posts FROM
INNER JOINはwp_term_relationships
ON(wp_posts.id = wp_term_relationships.object_id)を
内部結合wp_postmeta
ON(wp_posts.id = wp_postmeta.post_id)を
WHERE 1 = 1
AND(wp_term_relationships.term_taxonomy_id IN(24))
AND wp_posts.post_typeを= 'movies'
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