Os primeiros trabalhos funcionam como você esperaria:
= equals
!= does not equal
> greater than
>= greater than or equal to
< less than
<= less than or equal to
LIKE
e NOT LIKE
são operadores SQL que permitem adicionar símbolos de curingas, para que você possa ter uma consulta meta semelhante a esta:
array(
'key' => 'name',
'value' => 'Pat',
'compare' => 'LIKE'
)
Isso retornaria todas as postagens em que o meta-valor "name" tem a string "Pat". Neste caso, "Pat" "Patricia" e "Patrick" serão devolvidos para você. Há uma explicação do tutorial que não é do WordPress aqui .
Adicionar o caractere curinga %
não é necessário, porque ele é adicionado por padrão, como @Herb disse em seu abaixo. responder . Assim: $meta_value = '%' . like_escape( $meta_value ) . '%';
- consulte fonte .
IN
e NOT IN
selecionam as correspondências que estão dentro ou não na matriz especificada. Então você poderia fazer algo assim:
array(
'key' => 'color',
'value' => array('red', 'green', 'blue')
'compare' => 'IN'
)
e receberia todas as postagens com a cor definida como vermelho, verde ou azul. Usar 'NOT IN' recebe o contrário, quaisquer postagens que tenham um valor definido para qualquer outra coisa além do que está na matriz.
O SQL gerado para isso seria algo como isto:
SELECT * FROM posts_meta WHERE value IN ("red", "green", "blue")
BETWEEN
e NOT BETWEEN
permitem definir um intervalo de valores que podem estar corretos e exigem que você forneça dois valores em uma matriz em seu meta_query:
array(
'key' => 'price',
'value' => array(20,30)
'compare' => 'BETWEEN'
)
Isso vai te dar todos os posts onde o preço está entre 20 e 30. Esta pessoa procura um exemplo com datas.
NOT EXISTS
é exatamente o que parece - o meta valor não está definido ou está definido como um valor nulo. Tudo o que você precisa para essa consulta é o operador de chave e comparação:
array(
'key' => 'price',
'compare' => 'NOT EXISTS'
)
Esta pessoa precisava consultar valores meta inexistentes e precisava deles para brincar bem com os outros.
Espero que isso ajude!