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
LIKEy NOT LIKEson 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 .
INy NOT INseleccione 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")
BETWEENy le NOT BETWEENpermite 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 EXISTSes 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_querymatriz, sus claves no deben tener el prefijometa_. Si está utilizando$query->meta_key,$query->meta_valueetc., estos deberían conservar el prefijo.Tenga en cuenta que cuando usa un valor meta_compare de 'LIKE', WordPress ajusta automáticamente el carácter comodín (%) alrededor de la cadena meta_value. Por lo tanto, el ejemplo 'Pat%' podría no devolver ningún resultado.
fuente
%?