Wie kann ich die Reihenfolge mehrerer Metaschlüssel nach Metawert festlegen? Kann mir jemand ein Beispiel geben?
Wie kann ich die Reihenfolge mehrerer Metaschlüssel nach Metawert festlegen? Kann mir jemand ein Beispiel geben?
Antworten:
meta_query
ist ein Array von Meta-Klauseln. Beispielsweise:
$q = new WP_Query( array(
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'state',
'value' => 'Wisconsin',
),
array(
'key' => 'city',
'compare' => 'EXISTS',
),
),
) );
Sie können ein assoziatives Array mit einem Schlüssel für jede Metaklausel verwenden:
$q = new WP_Query( array(
'meta_query' => array(
'relation' => 'AND',
'state_clause' => array(
'key' => 'state',
'value' => 'Wisconsin',
),
'city_clause' => array(
'key' => 'city',
'compare' => 'EXISTS',
),
),
) );
Dann können Sie diese Schlüssel im order_by
Argument mit einem verwenden:
$q = new WP_Query( array(
'meta_query' => array(
'relation' => 'AND',
'state_clause' => array(
'key' => 'state',
'value' => 'Wisconsin',
),
'city_clause' => array(
'key' => 'city',
'compare' => 'EXISTS',
),
),
'orderby' => 'city_clause', // Results will be ordered by 'city' meta values.
) );
Oder mehr Klauseln:
$q = new WP_Query( array(
'meta_query' => array(
'relation' => 'AND',
'state_clause' => array(
'key' => 'state',
'value' => 'Wisconsin',
),
'city_clause' => array(
'key' => 'city',
'compare' => 'EXISTS',
),
),
'orderby' => array(
'city_clause' => 'ASC',
'state_clause' => 'DESC',
),
) );
Beispiel aus diesem Beitrag im Make WordPres Core-Blog.