Функція add_post_meta()
Додає довільне поле для певного поста / запису.
Для додавання поля можна також використовувати функцію update_post_meta (). Вона часто зручніше і працює універсально, оновлює поле або створює нове, якщо такого поля немає.
add_post_meta () зручніше використовувати, коли використовуються кілька довільних полів з однаковими ключами. Для цього у функції є параметр $unique (унікальний), який за замовчуванням дорівнює false, тобто за замовчуванням створюється не унікальний ключ, що означає що таких ключів може бути декілька.
add_post_meta () працює на основі add_metadata ().
Повертає
true якщо операція по додаванню поля пройшла вдало або false, якщо поле додати не вдалося.
Використання
1 |
<? php add_post_meta ($ post_id, $ meta_key, $ meta_value, $ unique); ?> |
$ Post_id (число) (обов’язковий)
ID поста, довільне поле до якого потрібно додати.
За замовчуванням: немає
$ Meta_key (рядок) (обов’язковий)
Назва (ключ) довільного поля.
За замовчуванням: немає
$ Meta_value (рядок)
Значення довільного поля.
За замовчуванням: немає
$ Unique (логічний)
true – унікальний (тільки один), false – не унікальна. Якщо поставити параметр в true, то при додаванні поля, спочатку буде перевірятися чи існує вже поле з таким же ключем, якщо існує, то полі не буде додано.
За замовчуванням: false
Приклади
1. Базове використання. Додамо довільне поле “my_key” зі значенням 47, до поста 68:
1 |
<? php add_post_meta (68, 'my_key', 47); ?> |
2. Додавання або оновлення унікального довільного поля.
Додамо довільне поле, якщо таке поле ще не існує або оновимо існуюче. Важливо розуміти, що якщо четвертий параметр add_post_meta стоїть в true, то полі не буде оновлено, якщо воно вже існує (приклад нижче).
1 |
<? php add_post_meta (7, 'fruit', 'banana', true) or update_post_meta (7, 'fruit', 'banana'); ?> |
для цього потрібно використовувати такий варіант:
1 |
if (! update_post_meta (...)) add_post_meta (...)) |
3. Якщо ми хочемо бути впевнені, що поля з ключем “my_key” не існує, перед тим як додавати його:
1 |
<? php add_post_meta (68, 'my_key', '47', true); ?> |
4. А ось приклад, що дозволяє додати нам кілька довільних полів з однаковими ключами “my_key”:
1 2 3 |
<? php add_post_meta (68, 'my_key', '47'); ?> <? php add_post_meta (68, 'my_key', '682'); ?> <? php add_post_meta (68, 'my_key', 'The quick, brown fox jumped over the lazy dog. "); ?> |
Створення системних (захованих) довільних полів
Якщо ви розробник і вам потрібно створити довільне поле, яке не буде видно користувачам, але при цьому буде працювати як звичайне довільне поле, то знайте що WordPress не показує довільні поля починаються з “_” (нижнього підкреслення). Не показує означає, що вони ігноруються на сторінці редагування постів або при використанні функції шаблону the_meta ().
Тому, якщо потрібно раптом потрібно сховати довільне поле, то потрібно створювати поле з ключем починаються з “_”, наприклад:
1 |
<? php add_post_meta (68, '_color', 'red', true); ?> |
додасть унікальне довільне поле _color зі значенням red і це полі не буде виводиться в адмінці на сторінці редагування постів / постійних сторінок.