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
(рядок) (обов’язковий) Тип об’єкта, мета дані для якого потрібно додати. Може бути:
comment
post
user
term
-
$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 | Введено. |