add_metadata()
Додає мета дані до будь-якого об’єкта (запис, коментар, користувач).
Це базова функція для керування метаданими. На її основі працюють усі інші функції метаполів. Також можна створити довільну таблицю в БД та з її допомогою записувати/видаляти дані звідти (див. нижче).
Споріднені функції
update_metadata( $meta_type, $object_id, $meta_key, $meta_value, [$prev_value] ) // можна використовувати замість `add_metadata()`, // Оскільки спочатку перевіряє існування ключа.
delete_metadata( $meta_type, $object_id, $meta_key, [$meta_value], [$delete_all] ) // Видаляє дані по ключу.
get_metadata( $meta_type, $object_id, [$meta_key], [$single] ) // Отримує дані з БД, за ключом.
Обов’язково дивіться також: Метадані у WordPress
add_comment_meta() ,
add_term_meta() ,
add_user_meta() ,
update_metadata() ,
add_post_meta()
Хуки з функції
Повертає
int|false.
- true – операція з додавання поля пройшла вдало
- false – поле додати не вдалося
Використання
add_metadata( $meta_type, $object_id, $meta_key, $meta_value, $unique );
- $meta_type
(рядок) (обов’язковий) Тип об’єкта, мета дані для якого потрібно додати. Може бути:
commentpostuserterm
- $object_id
(число) (обов’язковий) - ID об’єкта, мета дані для якого додаються.
- $meta_key
(рядок) (обов’язковий) - Ключ – назва типу додаткових даних.
- $meta_value
(рядок) (обов’язковий) - Значення ключа додаткових даних.
- $unique
(логічний) Визначення унікальності ключа.
false– означає, що цього об’єкта може бути визначено кілька однакових ключів.true– отже, що ключ цього об’єкта може лише один, тобто. якщо такий ключ вже існує, то функція не додасть жодних даних.
Типово: false
Приклади
#1 Приклад створення додаткових даних для коментарів 45
add_metadata( 'comment', 45, 'vocation', 'Будівельник', true );
#2 Створення довільної таблиці метаданих
Створювати такі таблиці може знадобиться розробникам плагінів. Створення відбувається на етапі активації плагіна через функцію register_activation_hook(). Потрібно розуміти, що такі таблиці можуть створюватися й іншими плагінами, тому робіть перевірку існування таких.
Приклад створення таблиці метаданих: term :
Global $wpdb; $result = false; //Створюємо таблицю в БД, якщо її немає $sql = sprintf( 'CREATE TABLE IF NOT EXISTS `%stermmeta` ( meta_id bigint(20) UNSIGNED NOT NULL auto_increment, term_id bigint(20) UNSIGNED NOT NULL, meta_key varchar(255), meta_value longtext, PRIMARY KEY (meta_id) )', $wpdb->prefix ); $result = $wpdb->query( $sql );
Нотатка! Після того, як таблиця створена, її потрібно зареєструвати в об’єкті $wpdb , щоб потім простіше було з нею працювати через клас $wpdb .
Для реєстрації визначте властивість класу $wpdb->termmeta, в якому вкажіть назву таблиці (робити це потрібно якомога раніше – перед використанням довільних функцій):
Global $wpdb; $wpdb->termmeta = $wpdb->prefix.'termmeta';
#3 Додавання даних до таблиці Term
Тепер, коли таблицю створено, додати дані туди можна так:
add_metadata( 'term', $_GET['tag_ID'], 'gender', 'M', true); add_metadata( 'term', $_GET['tag_ID'], 'age', '29', true ); add_metadata( 'term', $_GET['tag_ID'], 'favourite_colour', 'Green', true );
нотатки
- Global. wpdb. $wpdb WordPress database abstraction object.
список змін
| З версії 2.9.0 | Введено. |