Функція add_metadata()

При розробці сайту виникає потреба додати мета (додаткові) дані до будь-якого об’єкту (запис, коментар, користувач).

Ця функція є свого роду API для управління метаданими. Так як, для неї можна створити довільну таблицю в БД і записувати / видаляти дані з неї.

Споріднені функції:

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])

– Отримує дані з БД, по ключу.

add_metadata () використовується в add_user_meta (), add_post_meta ().

Функція повертає false / true, залежно від того чи вдалося додати метадані.

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

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

Тип об’єкта, мета дані для якого потрібно додати. Може бути: comment, post або user (завжди в однині).
За замовчуванням: немає

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

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

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

Ключ – назва типу додаткових даних.
За замовчуванням: немає

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

Значення ключа додаткових даних.
За замовчуванням: немає

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

Визначення унікальності ключа.
false – означає, що для цього об’єкта може бути визначено декілька однакових ключів.
true – означає, що ключ для цього об’хекта може бути тільки один, тобто якщо такий ключ вже існує, то функція не додасть ніяких даних.
За замовчуванням: false

Таблиці метаданих в Базі Даних WP

add_metadata () передбачає існування потрібних таблиць в БД, таблиць куди метадані будуть записуватися. За умовчанням в WordPress існує 3 такі таблиці для різних об’єктів (записи, коментарі та користувачі):

wp_commentmeta

Метадані для кожного коментаря

wp_postmeta

Метадані для постів. Сюди записуються звичні в WordPress “довільні поля поста”

wp_usermeta

Додаткові дані про користувача.

Створення довільних таблиць в БД

Якщо потрібно записувати будь-які інші дані (для інших об’єктів), то можна створити свою таблицю і користуватися add_metadata () і похідними їй функціями (update_metadata (), delete_metadata (), get_metadata ()), для створеної таблиці.

Структура створюваної таблиці:

meta_id

bigint (20) UNSIGNED NOT NULL auto_increment

object_id

Назва поля буде [названіе_об’екта] _id. bigint (20) UNSIGNED NOT NULL

meta_key

varchar (255)

meta_value

longtext

Приклади

1. Приклад створення додаткових даних для коментаря 45:

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

Приклад створення таблиці метаданих: term:

Замітка! Після того як таблиця створена, її потрібно зареєструвати в об’єкті $ wpdb, для того щоб потім простіше було з нею працювати через клас $ wpdb.

Для реєстрації визначте властивість класу $ wpdb-> termmeta в якому вкажіть назву таблиці (робити це потрібно через хук init або перед використанням довільних функцій):

Додавання даних в таблицю Term

Тепер, коли таблиця створена, додати дані туди можна так: