最初に姓、次に名の順にクエリを並べ替える方法を探しています。ラストネーム+ファーストネームの部分ではあまり運がありませんでしたが、私はラストネームを行うことができました。これは私が思い付いたものです:
$posts = get_posts(
[
'post_type' => 'soldier',
'post_status' => 'publish',
'posts_per_page' => 5,
'meta_key' => 'last_name',
'orderby' => 'meta_value',
'order' => 'DESC',
'meta_query' => [
[
'key' => 'last_name',
'orderby' => 'meta_value',
'order' => ASC
],
[
'key' => 'first_name',
'orderby' => 'meta_value',
'order' => ASC
],
],
'paged' => $soldier_paged
]
);
コードにはいくつかの問題がありますが、関係のないものもありますが、一般的には、複数のメタキーで並べるには名前付きメタクエリが必要です。
$posts = get_posts( [
'post_type' => 'soldier',
'posts_per_page' => 5,
'paged' => $soldier_paged,
'meta_query' => [
'last_name_clause' => [
'key' => 'last_name',
'compare' => 'EXISTS'
],
'first_name_clause' => [
'key' => 'first_name',
'compare' => 'EXISTS'
],
],
'orderby' => [
'last_name_clause' => 'ASC',
'first_name_clause' => 'ASC',
],
] );