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'
        );

Respostas:


69

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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.