Таблица 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,
которая хранит метаданные всей сети целиком