Вивчаємо метадані в wordpress частина 4

На даний момент ми розглянули, як отримати доступ до метаданих в WordPress, а також як працювати з повертаються масивами. Тепер, коли ми знаємо, як отримати і вивести на екран метадані, саме час перейти до вивчення того, як змінити цикл WordPress для повернення записів з певними значеннями метаданих.

Використовуємо WP_Query для виконання запитів за значенням мета-полів

Щоб виконати запити за значенням мета-полів, нам потрібно використовувати WP_Query і визначити meta_query. Якщо, наприклад, у нас є довільний тип записів, який називається films, що містить в собі довільне поле з назвою director, то ми можемо створити запит на отримання всіх фільмів, які були зняті одним з трьох режисерів Star Wars.

Давайте поглянемо на код, представлений нижче. Особливу увагу зверніть на meta_query:

У нас є масив з іменами режисерів, також складається з масивів. Спочатку ми переходимо до масиву для наших аргументів WP_Query. Після нашого першого аргументу post_type ми відкриваємо масив, що містить наші meta_query аргументи. У ньому ми задаємо ключ, який ми будемо шукати - в нашому випадку це director. Також ми задаємо масив значень, які ми будемо шукати в цьому ключі (поле).

Самий останній аргумент відображає те, як саме ми будемо порівнювати значення. У нашому випадку ми скористаємося порівнянням IN, що дозволить нам отримати будь-які записи з цими значеннями в полі director.

Інші види порівнянь

Як бути, якщо ми хочемо отримати фільми, які були зняті режисерами Star Wars, але хочемо виключити приквели Star Wars? Ми можемо просто додати ще один масив аргументів до нашого meta_query, проте цього разу для значень буде використовуватися масив з назвами фільмів для ключа film_title, а в якості порівняння ми поставимо NOT LIKE, щоб виключити всі записи з цими значеннями в полі film_title.

Тепер WordPress буде шукати фільми цих трьох режисерів з назвами, які не є заголовками жодного з трьох приквелів.

Висновок мета-полів в WP_Query

До сих пір я показував вам, як використовувати WP_Query для пошуку записів, які мають певне значення в довільному полі. Давайте тепер розглянемо, як виводити ці поля.

Відображення цих полів відбувається приблизно так само, як і раніше, за одним винятком - замість використання get_the_ID (), щоб задати ID для get_post_meta (), ми будемо використовувати контекст об'єкта. Таким чином, в нашому циклі, який ви можете бачити нижче, ID виходить трохи інакше - через $ query-> post-> ID.

Використання WP_User_Query

Як і у випадку з WP_Query, щоб знайти записи з певними значеннями для різних полів, ми можемо використовувати еквівалент таблиці WP_Query для користувачів - WP_User_Query.

Наприклад, якщо у нас є поле з назвою subscriber_level і ми хочемо знайти тільки тих користувачів, які мають рівень передплатників як extra_special або super_special, то ми можемо скористатися тим же способом, який ми застосовували для пошуку фільмів трьох режисерів Star Wars:

Як і у випадку з WP_Query, ми можемо об'єднуватися різні види порівнянь, щоб управляти тим, які користувачі нам будуть повернуті. У наступному прикладі ми об'єднаємо попередній запит із запитом користувачів, чиї імена Luke, Han або Leia:

У даній серії статей ми познайомилися з метаданими в WordPress, а також отримали деякі уроки їх використання.

Схожі статті