WP_Query - ordenar resultados por meta-valor

49

Eu verifiquei e não vi uma resposta que funcione até o momento. Eu tenho um WP_Query com os seguintes 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);

Desejo ordenar os resultados pelo campo de postagem personalizado 'client_feedback_score', do menor para o maior. Mas isso não parece funcionar ... alguém pode me apontar na direção certa?

EDITAR (RESOLVIDO):

Graças à resposta de Milo, eis o código de trabalho para solicitar por um meta-valor numérico:

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

Respostas:

69

orderbydeve ser meta_value_numou meta_valuenão o nome da chave. Consulte WP_Query orderby parâmetros .

Milo
fonte
Trabalhou um tratamento, felicidades companheiro.
Adam Moss
5
Nota pequena, se meta_keyainda não existir para a postagem, a postagem será ignorada.
adamj
11
@ RobBenz Você provavelmente deveria começar uma nova pergunta sobre este tópico. Etapa 1 Atribua o valor que você deseja à sua meta-chave, vamos chamá-lo my_meta_key, para cada postagem para gerar a ordem que você desejar. Etapa 2 Você define meta_keysua consulta para my_meta_key. Isso instrui o WordPress a consultar as postagens que possuem essa chave. Etapa 3 Defina orderbyna sua consulta como meta_value_num. Isso diz ao WordPress para não apenas consultar as postagens my_meta_key, mas também para ordenar numericamente por essa chave. Esse argumento de consulta é o único lugar que você verá ou usará meta_value_num.
Milo
11
@adamj, existe alguma solução alternativa para isso? Preciso classificar todas as postagens, independentemente da meta_key existir ou não.
unbreak
11
@unbreak a solução simples é para analisar sobre todas as mensagens e adicionar o meta_keya eles antes de executar a consulta fim
adamj