Таблица wp_blogmeta
Таблица wp_blogmeta
является аналогом таблиц wp_postmeta
, wp_usermeta
и wp_commentmeta
, но для сайтов в сети WordPress Multisite. Она позволяет хранить дополнительную произвольную информацию о каждом сайте, расширяя стандартный набор полей таблицы wp_blogs
.
Поля
Поле | Тип данных | Описание |
---|---|---|
meta_id |
bigint(20) unsigned |
Уникальный идентификатор записи метаданных (первичный ключ, AUTO_INCREMENT). |
blog_id |
bigint(20) unsigned |
Идентификатор сайта, к которому привязаны метаданные. Внешний ключ, ссылается на поле blog_id в таблице wp_blogs .
|
meta_key |
varchar(255) |
Ключ, определяющий имя или тип сохраняемых метаданных (например, 'site_icon', 'theme_mods_{theme_slug}' или кастомный ключ от плагина). |
meta_value |
longtext |
Значение, связанное с указанным ключом meta_key . Часто хранится в сериализованном формате (последовательность PHP), если значение является массивом или объектом.
|
Как это работает
Таблица wp_blogmeta
была введена в WordPress версии 5.1
для обеспечения согласованного API работы с метаданными сайтов, аналогичного тому, как работают метаданные для записей, пользователей и комментариев.
Ядро WordPress и плагины используют эту таблицу для хранения различной дополнительной информации о сайте, которая не умещается в стандартные поля таблицы wp_blogs
. Например, здесь могут храниться настройки темы для конкретного сайта, кастомные флаги, временные метки или любые другие данные.
Для работы с этой таблицей разработчики используют функции WordPress API, такие как add_site_meta()
, get_site_meta()
, update_site_meta()
и delete_site_meta()
. Эти функции обеспечивают правильное взаимодействие с таблицей, включая кэширование для повышения производительности.
Важно отметить, что в отличие от wp_postmeta
, где один объект может иметь множество метаполей с одинаковым ключом, в таблице wp_blogmeta
по умолчанию включена уникальность комбинации blog_id
+ meta_key
. Это означает, что для одного сайта может существовать только одна запись с определенным ключом, если только явно не указано иное при добавлении метаданных.
Пример SQL-запроса
Получить все метаданные для сайта с ID равным 2
можно следующим запросом:
SELECT meta_id, meta_key, meta_value
FROM wp_blogmeta
WHERE blog_id = 2
ORDER BY meta_id;
Обновить конкретное метаполе для сайта:
UPDATE wp_blogmeta
SET meta_value = 'new_value'
WHERE blog_id = 2 AND meta_key = 'my_custom_key';
Смотрите также
-
таблицу
wp_blogs
,
которая хранит основную информацию о сайтах сети -
таблицу
wp_postmeta
,
которая хранит метаданные записей -
таблицу
wp_usermeta
,
которая хранит метаданные пользователей -
таблицу
wp_sitemeta
,
которая хранит метаданные всей сети целиком