it-swarm.com.de

Benutzerdefinierte Feldreihenfolge nach Nachname und Vorname

Ich suche nach einer Möglichkeit, meine Abfrage nach Nachname und Vorname zu ordnen. Ich konnte Last Name machen, obwohl ich im Teil Last Name + First Name nicht viel Glück hatte. Folgendes ist mir eingefallen:

$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
    ]
);
1
Mark Anthony

Ihr Code weist einige Probleme auf, von denen einige nicht zusammenhängen. Im Allgemeinen benötigen Sie jedoch benannte Metaabfragen, um nach mehreren Metaschlüsseln zu sortieren:

$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',
    ],
] );
1
Milo