Таблица wp_blogs
Таблица wp_blogs - это фундаментальная таблица в установке WordPress с включенной функцией Multisite. Каждая запись в этой таблице представляет собой отдельный сайт (блог) в сети. Эта таблица создается только при активации Multisite и не существует в стандартных одиночных установках WordPress.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
blog_id |
bigint(20) |
Уникальный числовой идентификатор сайта в сети. Это первичный ключ таблицы. Значение 1 всегда зарезервировано для основного сайта сети.
|
site_id |
bigint(20) |
Идентификатор сети, к которой принадлежит сайт. В обычной установке Multisite (до версии WordPress 3.5) это значение всегда равно 1. Поле стало значимым с появлением возможности создавать несколько сетей сайтов.
|
domain |
varchar(200) |
Домен сайта (например, example.com). Для подсайтов в поддиректориях это поле содержит домен основного сайта. Для поддоменных установок - полное доменное имя подсайта (например, site1.example.com).
|
path |
varchar(100) |
Путь к сайту. Для основного сайта и подсайтов в поддоменах это значение обычно равно /. Для сайтов, созданных в поддиректориях, содержит путь к директории (например, /site1/).
|
registered |
datetime |
Дата и время регистрации (создания) сайта в сети. |
last_updated |
datetime |
Дата и время последнего обновления любой записи на сайте. Это поле обновляется автоматически. |
public |
tinyint(2) |
Флаг, указывающий на видимость сайта для поисковых систем. Значение 1 означает, что сайт индексируется, значение 0 - что сайт скрыт от индексации (настройка "Видимость сайта" в админ-панели).
|
archived |
tinyint(2) |
Флаг, указывающий, что сайт архивирован (1) или активен (0). Архивированные сайты отображаются с пометкой "Заархивирован" в списке сайтов сети и могут быть восстановлены суперадминистратором.
|
mature |
tinyint(2) |
Флаг, указывающий, что сайт помечен как "Для взрослых" (1) или нет (0).
|
spam |
tinyint(2) |
Флаг, помечающий сайт как спам (1) или нет (0). Помеченные сайты могут быть удалены суперадминистратором.
|
deleted |
tinyint(2) |
Флаг, указывающий, что сайт помечен как удаленный (1) или активен (0). WordPress не удаляет сайты из базы данных физически, а лишь помечает их этим флагом.
|
lang_id |
int(11) |
Идентификатор языка сайта, если используется мультиязычность. Ссылается на таблицу wp_languages.
|
Как это работает
При первой установке WordPress Multisite создается запись для основного сайта сети с blog_id = 1. Для этого сайта создается отдельный набор таблиц с префиксом wp_.
При создании каждого нового сайта в сети (будь то поддомен или поддиректория) в таблицу wp_blogs добавляется новая запись. Для этого сайта автоматически создается свой набор таблиц. Префикс этих таблиц формируется на основе blog_id (например, для сайта с blog_id = 2 префикс таблиц будет wp_2_).
Когда пользователь обращается по URL, WordPress анализирует домен и путь, ищет совпадение в полях domain и path таблицы wp_blogs, чтобы определить blog_id и загрузить данные из соответствующих таблиц этого сайта.
Поля public, archived, mature, spam и deleted используются для управления состоянием сайтов через админ-панель сети и влияют на их доступность для посетителей и поисковых систем.
Пример SQL-запроса
Получить список всех активных сайтов в сети можно с помощью запроса:
SELECT blog_id, domain, path, registered
FROM wp_blogs
WHERE deleted = 0
AND archived = 0
AND spam = 0
ORDER BY blog_id;
Узнать, какой префикс таблиц используется для конкретного сайта, можно через конкатенацию:
SELECT blog_id, CONCAT('wp_', blog_id, '_') as table_prefix
FROM wp_blogs
WHERE blog_id = 4;
Смотрите также
-
таблицу
wp_blog_versions,
которая отслеживает версии баз данных сайтов -
таблицу
wp_site,
которая хранит информацию о сетях в MU -
таблицу
wp_users,
которая содержит общих пользователей для всей сети -
таблицу
wp_usermeta,
которая хранит метаданные пользователей