Valori multiple orderby în WP_Query
Încerc să creez o interogare pentru a sorta după mai multe valori orderby. Iată ce am până acum:
$dept_id=2;
$query=new WP_Query(array(
'post_type'=>'wpcontactus',
'nopaging'=>true,
'post_status'=>array('publish', 'pending', 'future'),
'meta_key'=>'wcu_dept',
'meta_value'=>$dept_id,
'orderby'=>'title',
'order'=>'ASC'
));
Încerc să interoghez un tip de postare personalizat și, în cadrul acestui tip de postare, să interoghez o valoare meta.
Apoi, aș dori să sortez mai întâi după menu_order
ascendent, apoi după o valoare meta personalizată wcu_lastname
ascendent. Cu toate acestea, valoarea orderby nu pare să accepte un array.
Cum pot ordona interogarea folosind mai multe valori orderby?

@Musa cum putem seta mai multe criterii de ordonare pentru câmpuri? Mă întrebam același lucru și am găsit următoarea soluție:
În versiunea 4.0, acum poți transmite un array către WP_Query ca valoare pentru orderby.
Sintaxa arată astfel:
$q = new WP_Query( array(
'orderby' => array(
'title' => 'DESC',
'menu_order' => 'ASC'
)
));
Consultați acest link pentru mai multe detalii: https://make.wordpress.org/core/2014/08/29/a-more-powerful-order-by-in-wordpress-4-0/

$query=new WP_Query(array(
'post_type'=>'wpcontactus', // Tipul postării
'nopaging'=>true, // Fără paginare - afișează toate rezultatele
'post_status'=>array('publish', 'pending', 'future'), // Statusurile postărilor
'meta_query'=>array( // Interogare meta
array('key'=>'wcu_dept','value'=>$dept_id, 'compare'=>'='), // Filtrează după departament
),
'meta_key'=>'wcu_firstname', // Cheia meta pentru sortare
'orderby'=>'menu_order wcu_firstname', // Ordonează după ordinea din meniu și prenume
'order'=>'ASC' // Ordine crescătoare
));
Folosind sugestia lui @kaiser și opțiunea meta_query
, am reușit să obțin interogarea pe care o căutam.

$args = [
's' => $cuvant_cheie,
'post_type' => ['page'],
'paged' => $pagina,
'posts_per_page' => LIMITA_PAGINA,
'tax_query' => [
[
'taxonomy' => TAXONOMIE_PAGINA_RESURSA,
'field' => 'slug',
'terms' => $slug_term
],
],
'post_status' => 'publish',
'meta_key' => 'order',
'meta_type' => 'NUMERIC',
'orderby' => [
'meta_value_num' => 'ASC',
'ID' => 'DESC',
],
];
$wp_query = new WP_Query( $args );
codul meu este un exemplu.
