Перші кілька робіт про те, як ви очікували:
= equals
!= does not equal
> greater than
>= greater than or equal to
< less than
<= less than or equal to
LIKE
і NOT LIKE
це SQL-оператори, які дозволяють вам додавати символи символів, щоб ви могли мати мета-запит, який виглядає приблизно так:
array(
'key' => 'name',
'value' => 'Pat',
'compare' => 'LIKE'
)
Це поверне всі записи, де мета-значення "name" має рядок "Pat". У цьому випадку "Пат", "Патрісія" та "Патрік" всі вам повернуть. Там це не-WordPress підручник пояснення тут .
Додавання символу підстановки %
не потрібно, оскільки воно додається за замовчуванням, як, наприклад, @Herb сказав у своїй нижчій відповіді . $meta_value = '%' . like_escape( $meta_value ) . '%';
Ось так : - див. Джерело .
IN
і NOT IN
виберіть будь-які збіги, що знаходяться в (або не в) даному масиві. Отже, ви можете зробити щось подібне:
array(
'key' => 'color',
'value' => array('red', 'green', 'blue')
'compare' => 'IN'
)
і вони отримають усі повідомлення, у яких колір має бути червоним, зеленим або синім. Використання "NOT IN" отримує зворотний бік, будь-які публікації, у яких встановлено значення нічого іншого, ніж те, що є в масиві.
Створений для цього SQL буде виглядати приблизно так:
SELECT * FROM posts_meta WHERE value IN ("red", "green", "blue")
BETWEEN
і NOT BETWEEN
дозволяють визначити діапазон значень, який може бути правильним, і вимагати, щоб ви вказали два значення в масиві у вашому мета_запиті:
array(
'key' => 'price',
'value' => array(20,30)
'compare' => 'BETWEEN'
)
Ви отримаєте всі повідомлення, де ціна становить від 20 до 30. Ця особа переконує приклад із датами.
NOT EXISTS
так само, як це звучить - мета-значення не встановлено або встановлено на нульове значення. Все, що вам потрібно для цього запиту, - це оператор ключа та порівняння:
array(
'key' => 'price',
'compare' => 'NOT EXISTS'
)
Цій людині потрібно було запитувати неіснуючі мета-значення, і знадобилося їм, щоб добре грати з іншими.
Сподіваюся, це допомагає!
meta_query
масив, ваші ключі не мають бути префіксомmeta_
. Якщо ви використовуєте$query->meta_key
і$query->meta_value
т. Д., Вони все-таки повинні зберігати префікс.