Beberapa karya pertama tentang seperti yang Anda harapkan:
= equals
!= does not equal
> greater than
>= greater than or equal to
< less than
<= less than or equal to
LIKEdan NOT LIKEadalah operator SQL yang memungkinkan Anda menambahkan simbol wild-card, sehingga Anda bisa memiliki kueri meta yang terlihat seperti ini:
array(
'key' => 'name',
'value' => 'Pat',
'compare' => 'LIKE'
)
Ini akan mengembalikan semua posting di mana nilai meta "nama" memiliki string "Pat". Dalam hal ini, "Pat" "Patricia" dan "Patrick" akan dikembalikan kepada Anda. Ada penjelasan tutorial non-WordPress di sini .
Menambahkan karakter wildcard %tidak perlu, karena akan ditambahkan secara default seperti @Herb mengatakan dalam jawabannya di bawah ini . Seperti ini: $meta_value = '%' . like_escape( $meta_value ) . '%';- lihat sumber .
INdan NOT INpilih setiap kecocokan yang ada di (atau tidak dalam) array yang diberikan. Jadi Anda bisa melakukan sesuatu seperti ini:
array(
'key' => 'color',
'value' => array('red', 'green', 'blue')
'compare' => 'IN'
)
dan itu akan mendapatkan semua posting yang memiliki warna diatur ke merah, hijau, atau biru. Menggunakan 'NOT IN' mendapatkan kebalikannya, setiap tulisan yang memiliki nilai diatur ke hal lain selain apa yang ada dalam array.
SQL yang dihasilkan untuk ini akan terlihat seperti ini:
SELECT * FROM posts_meta WHERE value IN ("red", "green", "blue")
BETWEENdan NOT BETWEENmemungkinkan Anda untuk menentukan rentang nilai yang bisa benar, dan mengharuskan Anda untuk memberikan dua nilai dalam array di meta_query Anda:
array(
'key' => 'price',
'value' => array(20,30)
'compare' => 'BETWEEN'
)
Ini akan memberi Anda semua pos dengan harga antara 20 dan 30. Orang ini menggali contoh dengan tanggal.
NOT EXISTShanya seperti apa kedengarannya - nilai meta tidak disetel atau disetel ke nilai nol. Yang Anda butuhkan untuk permintaan itu adalah operator kunci dan pembanding:
array(
'key' => 'price',
'compare' => 'NOT EXISTS'
)
Orang ini perlu kueri nilai meta yang tidak ada, dan membutuhkannya untuk bermain baik dengan orang lain.
Semoga ini membantu!
meta_queryarray, kunci Anda seharusnya tidak diawali denganmeta_. Jika Anda menggunakan$query->meta_key,,$query->meta_valuedll. Maka ini masih harus mempertahankan awalan.