Nachfolge Vergleichs-Operatoren können verwendet werden:
- = Fragt Metaschlüssel ab, die gleich einem Metawert sind
- != Fragt Metaschlüssel ab, die NICHT gleich einem Metawert sind
- > Fragt Metaschlüssel ab, die größer als der Metawert sind
- >= Fragt Metaschlüssel ab, die größer & gleich dem Metawert sind
- < Fragt Metaschlüssel ab, die kleiner als der Metawert sind
- <= Abfrage von Metaschlüsseln, die kleiner und gleich dem Metawert sind
- LIKE Sucht nach einer Übereinstimmung zwischen dem Metawert und einer von Ihnen angegebenen Zeichenfolge
- NOT LIKE Sucht nach einer Nichtübereinstimmung zwischen dem Metawert und einer von Ihnen angegebenen Zeichenkette
- IN Sucht nach Übereinstimmungen zwischen dem Metawert und einem von Ihnen angegebenen Array von Werten
- NOT IN Sucht nach Nichtübereinstimmungen zwischen dem Metawert und einem von Ihnen angegebenen Wertefeld
- BETWEEN Sucht nach Übereinstimmungen zwischen zwei von Ihnen angegebenen Werten
- NOT BETWEEN Sucht nach Nichtübereinstimmungen zwischen zwei von Ihnen angegebenen Werten
Auch der Typ lässt sich in der Abfrage definieren:
NUMERIC, BINARY, CHAR, DATE, DATETIME, DECIMAL, SIGNED und UNSIGNED
Mit diesem Snippet lassen sich Beiträge, in denen ein bestimmter Wert in einem benutzerdefinierten Feld vorkommt, suchen:
$args = array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'my_custom_field',
'value' => 'suchwert',
'compare' => 'LIKE',
)
)
);
$q = new WP_Query($args);
Soll der exakte Wert vorkommen, den Operator „=“ verwenden.
Um nach mehreren Werten (einem Array von Werten) zu suchen:
$args = array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'my_custom_field',
'value' => array('value1', 'value2', 'value3'),
'compare' => 'IN',
)
)
);
$q = new WP_Query($args);
Um festzustellen, ob ein bestimmter Wert gesetzt wurde, aber nicht welcher, kann mit dem Vergleichsparameter EXISTS abgefragt werden:
$args = array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'my_meta_key',
'compare' => 'EXISTS'
)
)
);
$query = new WP_Query( $args );
Umgekehrt funktioniert das natürlich auch:
$args = array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'my_meta_key',
'compare' => 'NOT EXISTS'
)
)
);
$query = new WP_Query( $args );
Die Such nach einem numerischen Wert innerhalb eines bestimmten Bereich:
$args = array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'my_meta_key',
'value' => array( 10, 30 ),
'type' => 'numeric',
'compare' => 'BETWEEN'
)
)
);
$query = new WP_Query( $args );
Für einen („=“) oder mehreren bestimmten numerischen Werten („IN) den Operator ändern. Außerhalb des definierten Bereich wäre der Operator NOT BETWEEN….
Die Suche nach posts in einem Datumgsbereichs zwischen zwei Datümern liegt:
$args = array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'my_meta_key',
'value' => array( '2023-07-01', '2023-12-31' ),
'compare' => 'BETWEEN',
'type' => 'DATE'
)
)
);
$query = new WP_Query( $args );
Hier ein Beispiel für eine Mehrfachsortierung nach Meta Keys:
$args = array(
'post_type' => 'post',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'first_key',
'value' => 'value1',
'compare' => '='
),
array(
'key' => 'second_key',
'value' => 'value2',
'compare' => '='
),
array(
'key' => 'third_key',
'value' => array( 10, 30 ),
'type' => 'numeric',
'compare' => 'BETWEEN'
)
),
'orderby' => array(
'first_name' => 'ASC',
'last_name' => 'ASC',
'age' => 'DESC'
)
);
$query = new WP_Query( $args );
Schreibe einen Kommentar