Cómo ordenar WP_Query por múltiples meta keys y campos personalizados
28 ago 2017, 16:38:17
Vistas: 18.7K
Votos: 8
¿Cómo ordenar una consulta por múltiples meta keys y campos personalizados?
Este es mi código:
$args = array
(
'post_type' => 'listing',
'posts_per_page' => -1,
'tax_query' => array
(
array
(
'taxonomy' => 'listing_category',
'field' => 'slug',
'terms' => urldecode($category)
),
array
(
'taxonomy' => 'location',
'field' => 'slug',
'terms' => urldecode($location)
)
),
//*** ESTO NO FUNCIONA
'meta_query' => array
(
array(
'key' => 'listing_status',
'orderby' => 'meta_value',
'order' => ASC,
),
array(
'key' => 'listing_total_rank',
'orderby' => 'meta_value',
'order' => DESC,
),
array(
'key' => 'listing_free_date',
'orderby' => 'meta_value',
'order' => ASC,
),
array(
'key' => 'title',
'orderby' => 'meta_value',
'order' => ASC,
),
),
//***
);
$listings = new WP_Query( $args );
La parte del 'meta_query'
no funciona en el código.
Comentarios
Todas las respuestas a la pregunta
1
0
Estás utilizando una consulta de metadatos sin establecer un valor. La forma en que lo estás haciendo se usa para consultar publicaciones, no para ordenarlas.
Usando Consultas de Metadatos con Nombre
Para ordenar tus publicaciones por diferentes metadatos, puedes asignar un nombre a tus consultas de metadatos y luego usarlo para establecer el orden. Aquí tienes un ejemplo sencillo:
$args = array(
'meta_query' => array(
'relation' => 'AND',
'query_one' => array(
'key' => 'key_one',
'value' => 'value_one', // Opcional
),
'query_two' => array(
'key' => 'key_two',
'compare' => 'EXISTS', // Opcional
),
),
'orderby' => array(
'query_one' => 'ASC',
'query_two' => 'DESC',
),
);
Puedes revisar esta sección de la página del codex para WP_Query()
para familiarizarte con el ordenamiento de publicaciones.

Johansson
15.4K
28 ago 2017 17:04:13
Preguntas relacionadas
2
respuestas
1
respuestas
2
respuestas