Функція add_post_meta()

Додає довільне поле для певного поста / запису.

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

add_post_meta () зручніше використовувати, коли використовуються кілька довільних полів з однаковими ключами. Для цього у функції є параметр $unique (унікальний), який за замовчуванням дорівнює false, тобто за замовчуванням створюється не унікальний ключ, що означає що таких ключів може бути декілька.

add_post_meta () працює на основі add_metadata ().

Повертає

true якщо операція по додаванню поля пройшла вдало або false, якщо поле додати не вдалося.

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

$ Post_id (число) (обов’язковий)

ID поста, довільне поле до якого потрібно додати.
За замовчуванням: немає

$ Meta_key (рядок) (обов’язковий)

Назва (ключ) довільного поля.
За замовчуванням: немає

$ Meta_value (рядок)

Значення довільного поля.
За замовчуванням: немає

$ Unique (логічний)

true – унікальний (тільки один), false – не унікальна. Якщо поставити параметр в true, то при додаванні поля, спочатку буде перевірятися чи існує вже поле з таким же ключем, якщо існує, то полі не буде додано.
За замовчуванням: false

Приклади

1. Базове використання. Додамо довільне поле “my_key” зі значенням 47, до поста 68:

2. Додавання або оновлення унікального довільного поля.

Додамо довільне поле, якщо таке поле ще не існує або оновимо існуюче. Важливо розуміти, що якщо четвертий параметр add_post_meta стоїть в true, то полі не буде оновлено, якщо воно вже існує (приклад нижче).

для цього потрібно використовувати такий варіант:

3. Якщо ми хочемо бути впевнені, що поля з ключем “my_key” не існує, перед тим як додавати його:

4. А ось приклад, що дозволяє додати нам кілька довільних полів з однаковими ключами “my_key”:

Створення системних (захованих) довільних полів

Якщо ви розробник і вам потрібно створити довільне поле, яке не буде видно користувачам, але при цьому буде працювати як звичайне довільне поле, то знайте що WordPress не показує довільні поля починаються з “_” (нижнього підкреслення). Не показує означає, що вони ігноруються на сторінці редагування постів або при використанні функції шаблону the_meta ().

Тому, якщо потрібно раптом потрібно сховати довільне поле, то потрібно створювати поле з ключем починаються з “_”, наприклад:

додасть унікальне довільне поле _color зі значенням red і це полі не буде виводиться в адмінці на сторінці редагування постів / постійних сторінок.