# Функция ADD_METADATA() | WP 2.9.0
Функция add_metadata()
позволяет добавлять метаданные к определенному объекту (например, посту, комментарию, пользователю и т. д.). Это базовая функция для управления метаданными, и все другие функции для работы с пользовательскими полями основываются на ней.
## Что такое метаданные?
Метаданные — это дополнительные данные, которые могут описывать или уточнять объекты в WordPress. Примером может быть информация о пользователе, дополнительные параметры поста или комментария.
## Связанные функции
Вместо add_metadata()
вы также можете использовать:
- **update_metadata($meta_type, $object_id, $meta_key, $meta_value, [$prev_value])** — обновляет метаданные, если указанный ключ уже существует.
- **delete_metadata($meta_type, $object_id, $meta_key, [$meta_value], [$delete_all])** — удаляет метаданные по ключу.
- **get_metadata($meta_type, $object_id, [$meta_key], [$single])** — получает метаданные по ключу.
## Стандартные таблицы метаданных в WordPress
Для работы функции нужно наличие специальных таблиц в базе данных, в которые будут добавляться метаданные. По умолчанию в базе данных WordPress есть четыре таблицы для разных типов объектов:
- wp_commentmeta
— метаданные комментариев.
- wp_postmeta
— метаданные постов (здесь хранятся пользовательские поля поста).
- wp_usermeta
— метаданные пользователей (дополнительная информация о пользователе).
- wp_termmeta
— метаданные таксономии (дополнительные данные для элементов таксономии).
## Использование функции
Чтобы воспользоваться функцией add_metadata()
, используйте следующий синтаксис:
```php
add_metadata($meta_type, $object_id, $meta_key, $meta_value, $unique);
Параметры функции:
$meta_type (string)
(обязательный): тип объекта, к которому относятся метаданные. Возможные значения: 'post', 'comment', 'term', 'user' и т. д.$object_id (int)
(обязательный): ID объекта, к которому относятся метаданные.$meta_key (string)
(обязательный): ключ метаданных.$meta_value (mixed)
(обязательный): значение метаданных. Если значение не скалярное, оно должно быть сериализуемым.$unique (true|false)
(необязательный): определяет, должны ли метаданные для указанного ключа быть уникальными для объекта. Если true и объект уже имеет значение для указанного ключа, изменения не произойдут. По умолчанию: false.
Примеры использования
Пример 1: Создание таблицы для метаданных термина
Разработчики плагинов могут создать отдельные табли��ы для метаданных. Это нужно делать в момент активации плагина с помощью функции register_activation_hook()
.
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
, чтобы упростить работу с ней.
global $wpdb;
$wpdb->termmeta = $wpdb->prefix . 'termmeta';
Пример 2: Добавление метаданных в таблицу термина
Теперь, когда таблица создана, вы можете добавлять данные, как показано ниже:
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);
Пример 3: Добавление метаданных к комментарию с ID 45
add_metadata('comment', 45, 'vocation', 'Builder', true);
Примечания
- Глобальные переменные: Используйте объект
$wpdb
для взаимодействия с базой данных WordPress.
История изменений
- С версии 2.9.0: Функция была введена в WordPress.
Заключение
Функция add_metadata()
является важным инструментом для работы с метаданными в WordPress. Она позволяет добавлять, обновлять и удалять информацию, что помогает улучшать функциональность сайта и управление контентом.