ВНИМАНИЕ: Запись на курсы по HTML, CSS, JavaScript, PHP, Python, React, Vue, Laravel и другим фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
15 of 21 menu
Вступайте в телеграмм-канал сайта code.mu: новинки, статьи, интервью, задачи, бесплатные курсы и тренинги. Жми для вступления:)

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