WP_Query - Ordina i risultati per meta valore


49

Ho controllato e non ho ancora visto una risposta che funzioni ancora. Ho un WP_Query con i seguenti argomenti:

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

$query = new WP_Query($args);

Voglio ordinare i risultati dal campo postale personalizzato 'client_feedback_score', dal più basso al più alto. Ma questo non sembra funzionare ... qualcuno può indicarmi la giusta direzione?

MODIFICA (RISOLTO):

Grazie alla risposta di Milo, ecco il codice di lavoro per ordinare secondo un meta valore numerico:

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

Risposte:


69

orderbydovrebbe essere meta_value_numo meta_valuenon il nome della chiave. Vedi i parametri di ordine WP_Query .


Ha funzionato a meraviglia, saluti amico.
Adam Moss,

5
Piccola nota, se il meta_keynon esiste ancora per il post, il post verrà ignorato.
adamj,

1
@RobBenz Probabilmente dovresti iniziare una nuova domanda su questo argomento. Passaggio 1 Assegna qualsiasi valore desideri alla tua meta chiave, chiamiamola my_meta_key, per ogni post per generare l'ordine che desideri. Passaggio 2 Impostare meta_keyla query su my_meta_key. Questo dice a WordPress di cercare i post che hanno quel tasto. Passaggio 3 Impostare orderbyla query su meta_value_num. Questo dice a WordPress non solo di interrogare i post con my_meta_key, ma anche di ordinare numericamente con quel tasto. Quell'argomento di query è l'unico posto che vedrai o utilizzerai mai meta_value_num.
Milo,

1
@adamj è qualche soluzione alternativa questo? Ho bisogno di ordinare tutti i post, indipendentemente dal fatto che meta_key esista per il post o meno.
spezzare il

1
@unbreak la soluzione semplice è analizzare tutti i post e aggiungerli meta_keyprima di eseguire la query dell'ordine
adamj
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.