WP_Query - Ordenar resultados por metavalor

49

He revisado y no he visto una respuesta que funcione hasta el momento. Tengo un WP_Query con los siguientes argumentos:

$args = array(
    'post_status' => 'publish',
    'post_type' => 'listing',
    'meta_key' => 'client_feedback_score',
    'orderby' => 'client_feedback_score',
    'order' => 'DESC'
        );

$query = new WP_Query($args);

Quiero ordenar los resultados por el campo de publicación personalizado 'client_feedback_score', de menor a mayor. Pero esto no parece funcionar ... ¿Alguien puede señalarme en la dirección correcta?

EDITAR (RESUELTO):

Gracias a la respuesta de Milo, aquí está el código de trabajo para ordenar por un metavalor numérico:

$args = array(
            'post_status' => 'publish',
            'post_type' => 'listing',
            'meta_key' => 'client_feedback_score',
            'orderby' => 'meta_value_num',
            'order' => 'DESC'
        );
Adam Moss
fuente

Respuestas:

69

orderbydebe ser meta_value_num, o meta_valueno, el nombre de la clave. Ver los parámetros de orden WP_Query .

Milo
fuente
Trabajó un placer, saludos compañero.
Adam Moss
55
Pequeña nota, si meta_keyaún no existe para la publicación, la publicación será ignorada.
adamj
1
@RobBenz Probablemente deberías comenzar una nueva pregunta sobre este tema. Paso 1 Asigne el valor que desee a su metaclave, llamémoslo my_meta_key, para que cada publicación genere el orden que desee. Paso 2 Estableces meta_keyen tu consulta a my_meta_key. Esto le dice a WordPress que busque publicaciones que tengan esa clave. Paso 3 Establezca orderbyen su consulta a meta_value_num. Esto le dice a WordPress que no solo consulte las publicaciones my_meta_key, sino que también ordene numéricamente por esa tecla. Ese argumento de consulta es el único lugar que verá o usará meta_value_num.
Milo
1
@adamj ¿hay alguna solución para esto? Necesito ordenar todas las publicaciones, independientemente de que exista meta_key para la publicación o no.
Desbloquear
1
@unbreak, la solución simple es analizar todas las publicaciones y agregarlas meta_keyantes de ejecutar la consulta de pedido
adamj