2017-05-03 4 views
1

Ich habe einen benutzerdefinierten Beitragstyp namens "Eigenschaft".Query und Orderby multiple ACF Felder

Jede Eigenschaft hat eine ACF Checkbox-Felder "property_status" mit den folgenden Optionen genannt:

: mieten

vermietet: Vermietet

Verkauf: Zum Verkauf

verkauft: Verkauft Häuser

neu: Im Bau

Jede Eigenschaft auch mit den folgenden Optionen ein gekennzeichnetes Listing ACF Optionsfeld Feld „property_featured“ genannt hat:

no: Nein

ja: Ja

Ich habe abgefragt erfolgreich die Beiträge zu zeigen, mit mit dem folgenden Code:

$paged = (get_query_var('paged')) ? absint(get_query_var('paged')) : 1; 
$args = array(
    'post_type' => 'property', 
    'posts_per_page' => 12, 
    'meta_key' => 'property_status', 
    'orderby' => array(
     'property_featured' => 'ASC', 
     'property_status' => 'ASC' 
    ), 
    'order' => 'ASC', 
    'paged' => $paged 
    ); 
$wp_query = new WP_Query($args); 

ich brauche meine Beiträge zu bestellen, indem sie die vorgestellten Objekte mit einem Optionsfeld Auswahl von „Ja: Ja“ zu nennen, dann die anderen Beiträgen von ihrem ‚prope unter„Eigenschaften“angezeigt rty_status 'von Miete, Miete und neue, Verkauf, dann Verkauf und neue. Bei einigen Eigenschaften können im Feld "property_status" 2 Kontrollkästchen aktiviert sein, z. B. eine zu vermietende Eigenschaft, dies ist jedoch alles "neu" im Aufbau.

Ich habe mehrere verschiedene Abfragedeklarationen ausprobiert, um diese benutzerdefinierten Posts in der von mir benötigten Reihenfolge anzuzeigen, aber keinen Erfolg erzielt zu haben. Der Code oben ist, was ich verwende.

Antwort

0

Wie in der WP_Query documentation beschrieben, wenn man von zwei verschiedenen Stücken postmeta bestellen möchten (zB property_featured erste und property_status Sekunden), müssen Sie Ihre Meta-Abfrage an Ihre orderby Array kombinieren und verknüpfen mit 'benannte Meta-Abfragen'.

$args = array(
    'post_type'  => 'property', 
    'posts_per_page' => 12, 
    'paged'   => $paged, 

    'meta_query'  => array(
     'relation' => 'AND', 
     'featured_clause' => array(
      'key' => 'property_featured', 
      'compare' => 'EXISTS' 
     ), 
     'status_clause' => array(
      'key' => 'property_status', 
      'compare' => 'EXISTS' 
     ) 
    ), 

    'orderby' => array(
     'featured_clause' => 'ASC', 
     'status_clause' => 'ASC' 
    ) 

); 
:

unten Ihren Code geändert

Verwandte Themen