Sizin gibi hakkında ilk birkaç çalışma beklediğiniz:
= equals
!= does not equal
> greater than
>= greater than or equal to
< less than
<= less than or equal to
LIKE
ve NOT LIKE
joker karakterler ekleyebilmenizi sağlayan SQL işleçleridir, böylece şöyle görünen bir meta sorgunuz olabilir:
array(
'key' => 'name',
'value' => 'Pat',
'compare' => 'LIKE'
)
Bu, "name" meta değerinin "Pat" dizesine sahip olduğu tüm gönderileri döndürür. Bu durumda, "Pat" "Patricia" ve "Patrick" hepsi size geri döndürülecekti. Burada WordPress'e ait olmayan bir öğretici açıklama var .
Joker karakter eklemek %
gerekli değildir, çünkü varsayılan olarak @Herb'deki gibi cevap olarak eklenmiştir . Bunun gibi: $meta_value = '%' . like_escape( $meta_value ) . '%';
- kaynağa bakınız .
IN
ve NOT IN
verilen dizide olan veya olmayan dizileri seçin. Böylece böyle bir şey yapabilirsin:
array(
'key' => 'color',
'value' => array('red', 'green', 'blue')
'compare' => 'IN'
)
ve rengi kırmızı, yeşil veya mavi olarak ayarlanmış tüm gönderileri alır. 'NOT IN' kullanarak, dizidekilerden başka bir şeye ayarlanmış bir değeri olan tüm gönderiler tam tersi olur.
Bunun için oluşturulan SQL şuna benzer:
SELECT * FROM posts_meta WHERE value IN ("red", "green", "blue")
BETWEEN
ve NOT BETWEEN
doğru olabilecek bir değer aralığı tanımlamanıza izin verir ve meta_query'nizdeki bir dizide iki değer vermenizi ister:
array(
'key' => 'price',
'value' => array(20,30)
'compare' => 'BETWEEN'
)
Bu, fiyatın 20 ile 30 arasında olduğu tüm gönderileri size ulaştıracaktır . Bu kişi , tarih içeren bir örneğe bakmaktadır.
NOT EXISTS
tıpkı göründüğü gibi - meta değeri ayarlanmamış veya boş bir değere ayarlanmış. Bu sorgu için ihtiyacınız olan tek şey anahtar ve karşılaştırma operatörüdür:
array(
'key' => 'price',
'compare' => 'NOT EXISTS'
)
Bu kişinin var olmayan meta değerlerini sorgulaması ve başkalarıyla iyi oynamaları gerekiyordu.
Bu yardımcı olur umarım!
meta_query
Dizi kullanıyorsanız , tuşlarınızın önekleri olmamalıdırmeta_
. Eğer kullanıyorsanız$query->meta_key
,$query->meta_value
vb daha sonra bu hala önek korumalıdır.