Los primeros trabajos funcionan como es de esperar:
= equals
!= does not equal
> greater than
>= greater than or equal to
< less than
<= less than or equal to
LIKE
y NOT LIKE
son operadores SQL que le permiten agregar símbolos comodín, por lo que podría tener una metaconsulta que se vea así:
array(
'key' => 'name',
'value' => 'Pat',
'compare' => 'LIKE'
)
Esto devolvería todas las publicaciones donde el metavalor "nombre" tiene la cadena "Pat". En este caso, "Pat", "Patricia" y "Patrick" serían devueltos a usted. Hay una explicación tutorial que no es de WordPress aquí .
Agregar el carácter comodín %
no es necesario, porque se agrega de forma predeterminada como @Herb dijo en su respuesta a continuación . Así: $meta_value = '%' . like_escape( $meta_value ) . '%';
- ver fuente .
IN
y NOT IN
seleccione cualquier coincidencia que esté en (o no en) la matriz dada. Entonces podrías hacer algo como esto:
array(
'key' => 'color',
'value' => array('red', 'green', 'blue')
'compare' => 'IN'
)
y obtendría todas las publicaciones que tienen el color establecido en rojo, verde o azul. El uso de 'NO EN' obtiene lo contrario, cualquier publicación que tenga un valor establecido en algo más que lo que está en la matriz.
El SQL generado para esto se vería así:
SELECT * FROM posts_meta WHERE value IN ("red", "green", "blue")
BETWEEN
y le NOT BETWEEN
permite definir un rango de valores que podría ser correcto, y le exige que proporcione dos valores en una matriz en su meta_query:
array(
'key' => 'price',
'value' => array(20,30)
'compare' => 'BETWEEN'
)
Esto te llevará a todas las publicaciones donde el precio esté entre 20 y 30. Esta persona busca un ejemplo con fechas.
NOT EXISTS
es exactamente como suena: el metavalor no está establecido o está establecido en un valor nulo. Todo lo que necesita para esa consulta es la clave y el operador de comparación:
array(
'key' => 'price',
'compare' => 'NOT EXISTS'
)
Esta persona necesitaba consultar meta valores inexistentes, y necesitaba que jugaran bien con los demás.
¡Espero que esto ayude!
meta_query
matriz, sus claves no deben tener el prefijometa_
. Si está utilizando$query->meta_key
,$query->meta_value
etc., estos deberían conservar el prefijo.