Мета-дані в WordPress


Один з факторів, який робить WordPress потужним інструментом – це можливість використовувати таблицю wp_postmeta для зберігання додаткових полів. Ці поля можуть містити додаткову інформацію, наприклад SEO-поля, додані SEO плагіном, або можуть бути використані для відображення додаткового контенту клієнтської частини.

Додаючи до полів цю додаткову інформацію, ви можете створювати власні запити для організації відображення вашого контенту.

Навчання роботі з цими даними – хороший спосіб вивчити базові поняття PHP, такі як масиви , цикли і об’єкти . Щоб повністю оволодіти мета-даними WordPress, ви повинні опанувати всіма видами масивів.

У цьому керівництві я покажу вам різні способи роботи з мета-даними WordPress записів, а також з мета-даними користувачів в якості прикладів роботи з масивами.

Що таке мета-дані записи?

Саме технічне визначення мета-даних записи – це будь-яка інформація, що зберігається в таблиці wp_postmeta . За замовчуванням там не так вже й багато інформації, але плагін або тема в будь-який момент можуть додати своє поле, а дані, введені в це поле, будуть зберігатися в таблиці wp_postmeta . Хороший приклад – SEO-поля, що додаються SEO-плагіном. Наприклад, згадайте мета-опис вашого поста. Це поле зберігається в таблиці wp_postmeta .

Також власними полями можуть бути доповнені профілі користувачів WordPress. І як для таблиці  wp_posts  є таблиця  wp_postmeta , так дані для користувачів зберігаються в таблиці wp_usermeta , а не в таблиці wp_user .

У цій серії статей ми не будемо говорити про те, як додавати власні поля в WordPress – це окрема тема. Власні поля можуть бути додані в редакторі записи за допомогою мета-блоку ” Довільні поля “, можуть бути додані безпосередньо плагіном або темою, а також через використання спеціального фреймворка/плагіна

Технічно, мета-дані записи – це будь-яка інформація, що зберігається в таблиці wp_postmeta . Як ми згадували раніше, хороший приклад мета-даних записи – поле мета-опису, яке додається плагінами типу WordPress SEO.

Методи отримання мета-даних

Використання get_post_meta ()

WordPress надає безліч способів отримання мета-даних для запису.

За допомогою get_post_meta () ми можемо отримати тільки одне поле, вказавши його. Наприклад, щоб отримати поле під назвою ‘ foo ‘ з поточного запису в циклі, ми можемо зробити:

1
get_post_meta( get_the_id(), 'foo', true );

Зверніть увагу, що останній переданий нами аргумент –  true . Цей аргумент під назвою ” single ” визначає, хочемо ми отримати у відповідь окреме значення або масив значень.

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

Іноді ми хочемо зробити цілий цикл навколо мета-даних, і в цьому випадку дуже стане в нагоді WP_Query . WP_Query дозволяє нам робити так званий “мета-запит”, де запит на записи грунтується на мета-полях і повертає записи, які містять значення, відповідні запитуваною. Результатом буде колекція, по якій ми можемо проходити в циклі.

Наприклад, уявіть, що у нас є поле під назвою ” author_name ” і ми хочемо повернути всі записи, де в поле author_name  міститься значення ‘Shevchenko‘. WP_Query дозволяє нам робити це дуже просто – ми розглянемо це докладніше в наступному керівництві.

Не тільки записи

Мета-дані є не тільки у записів. Наприклад, ви знаєте всі поля, які доступні в профілі користувача? Це мета-поля, але зберігаються вони не в wp_postmeta , а в таблиці  wp_usermeta .

В результаті, у нас є окремі функції і класи для мета-даних користувача. Функції get_user_meta()  і  get_author_meta()  – еквівалент аналогічним командам записів. У  WP_Query  теж є свій еквівалент для користувачів –  WP_User_Query .

Об’єкти або масиви

Коли ви використовуєте функції типу get_post_meta () для отримання більш ніж одного поля, ви, швидше за все, отримаєте те, що називається багатовимірним масивом . Багатовимірний масив також відомий як масив масивів. Кожен масив всередині багатовимірного масиву може в свою чергу теж бути багатовимірним.

І нарешті, як ми згадували раніше, інший метод отримання інформації про записи – це використання WP_Query . Коли ви використовуєте клас WP_Query, ви використовуєте те, що називається об’єктно-орієнтованим PHP, і в результаті ви отримуєте не масив – ви отримуєте об’єкт.

У деякому роді об’єкти схожі на масиви – вони можуть містити масиви даних. Але до об’єкта ви можете застосовувати будь-яку функцію класу. Тобто, ми можемо не тільки використовувати об’єкт WP_Query для повернення значення мета-поля, але також можемо використовувати його внутрішні методи, найпопулярніший з яких –  the_post () .

Джерело: code.tutsplus.com