WordPress как на ладони
eurobyte.ru - мощные сервера с Дата-центрами в Нидерландах и Москве. От 159 ₽/мес.

WordPress Мультисайт

С версии WordPress 3.0 можно создавать сети сайтов, где будет один главный сайт c супер администратором и сколько угодно подсайтов, у каждого из которых свой администратор. Такой режим установки называется Multisite, его еще исторически коротко называют MU (MultiUser).

В этом руководстве показано, как создать сеть сайтов на WordPress, установив WorrdPress в режиме Multisite.

Multisite - это новое название бывшего «WordPress MU», который до версии WordPress 3.0 был плагином, а затем стал частью WordPress.

Читайте также: Установка Multisite

Особенности Multisite

При установке WordPress в режиме «Мультисайт» все сайты сети будут храниться в единой базе данных, в единой папке на сервере и будут управляться единой установкой (ядром) WordPress. При этом сайтов может быть бесконечно много. Каждый сайт в сети Multisite настраивается отдельно. Однако, плагины, темы и пользователи становятся общими и это удобно.

Особенности и преимущества «Мультисайт»:
  • В MU: единый движок, одна база данных, общие темы и плагины, общая папка на сервере и поэтому:

    • WordPress обновляется один раз для всей сети сайтов;
    • Плагины и темы устанавливаются один раз для всей сети;
    • Плагины и темы обновляются один раз для всей сети;
    • Плагин может быть активирован для отдельного сайта сети или для всех сайтов сразу;
    • Тема может быть «разрешена» для отдельного сайта сети или для всех сайтов сразу;
    • Если на нескольких сайтах сети используется одна тема, её можно изменять создав дочернюю тему.
  • Единая таблица пользователей в базе данных:

    • Зарегистрировавшись на одном из сайтов сети, пользователь получает учетную запись для всей сети;
    • Имеющегося в сети пользователя можно быстро добавлять к сайтам сети;
    • Авторизованный пользователь будет авторизован на всех сайтах сети, к которым он подключен;
    • Пользователи могут иметь разные роли на разных сайтах сети;
    • Супер-администратор может разрешить пользователям создавать свои собственные сайты в сети;
  • Адрес (URL) сайта сети может быть трех видов:

    • Подкаталог - example.com/site1.
    • Поддомен - site1.example.com.
    • Отдельный домен. С версии 4.5 эту возможность внедрили в ядро, подробнее здесь. До этой версии для этого нужно было устанавливать плагин: WordPress MU Domain Mapping.
  • В MU очень удобно получать данные одного сайта сети на другом сайте и наоборот;

  • Обязательные плагины (mu-plugins) будут работать для всех сайтов сети. Их нельзя отключить для отдельного сайта. При этом их наличие будет видно только в плагинах всей сети, а в плагинах отдельного сайта они спрятаны;
Недостатки Multisite:
  • Сеть сайтов сложнее поддерживать - требуется больше знаний и умений.
  • Многие не популярные плагины не умеют работать в этом режиме.
  • Объем базы данных растет с каждым новым сайтом.
  • Ресурсы хостинга будут общие для всех сайтов и нет возможности разделить сайты между разными хостинг-площадками.
  • FTP доступ и доступ к базе данных, также будет общий для всех сайтов. Иногда это может стать проблемой.
  • При обновлении ядра WordPress или плагинов, изменения коснуться всей сети сайтов... Это может вызвать проблемы на некоторых сайтах сети.

Когда Multisite может пригодится?

Чаще всего проще использовать отдельную установку WordPress и не вдаваться в тонкости сети сайтов. Но иногда режим MU может быть незаменим или просто сэкономить кучу времени.

MU хорошо подойдет в следующих случаях:

  • Когда у вас есть несколько тесно связанных между собой сайтов. Например, у вас есть 3 сайта очень похожие друг на друга: «ремонт ванной», «ремонт гостиной», «ремонт спален» и для каждого из них нужен отдельный домен...

  • MU отлично подходит для создания мультиязычных сайтов - один подсайт = одна локаль.

  • Когда нужна одна учетная запись для авторизации на разных сайтах.

В остальных случаях, я бы рекомендовал использовать простую установку WordPress. С ней у вас не будет кучи лишних вопросов - с ней проще!

Управление сетью

После установке MU появляется новая роль «Супер-администратор» и новый раздел «Мои сайты» с вложенным пунктом «Управление сетью» - запомните этот пункт, им вы будите пользоваться часто.

Управление сетью

Супер-администратор может управлять всей сетью через пункт меню «Управление сетью». А в нем можно: создавать сайты, новых пользователей, устанавливать, удалять, включать и отключать плагины и темы и т.д.

Консоль супер-администратора

В остальном, когда переключитесь на отдельный сайт, все абсолютно тоже самое как и в обычной установке WordPress. Единственное отличие: на странице добавления пользователей, мы можем прикреплять имеющихся пользователей к текущему сайту.

Прикрепление пользователей в Мультисайтах

Еще немного особенностей для новичков:

Плагины: после установки плагина, супер-админ может включить плагин для всей сети сайтов сразу. Или можно перейти на отдельный сайт и активировать плагин только для текущего сайта сети.

Пользователи: супер-админ может создать нового пользователя или прикрепить существующего к указанному сайту.

Темы: после установки темы, супер-админ может разрешить использование темы для всех сайтов сразу. Или можно перейти в настройки отдельного сайта в разделе «сети сайтов» и разрешить использовать тему только для него.

Настройка отдельного сайта в режиме мультисайт

Структура сайтов и блогов

При установке MU появляются 3 новых понятия: сети, сайты и блоги. Чтобы многое стало ясно, давайте посмотрим как хранятся опции каждого типа.

В WordPress есть четыре похожие друг на друга функции для получения опций:

  1. get_network_option()
  2. get_site_option()
  3. get_blog_option()
  4. get_option()

Эти функции можно собрать в группы:

get_network_option() равно get_site_option()
get_blog_option() равно get_option()

«Сайты» они же «Сети» в MU

Это основные сайты (которые по совместительству тоже блоги). Обычно такой основной сайт всего один. У него есть все те же данные что и у любого блога (своя таблица wp_options). Однако у него также есть свои опции, которые находятся в таблице wp_sitemeta. Именно из wp_sitemeta получают данные функции: *_network_option() и *_site_option().

get_network_option() - это фундаментальная функция, ей можно указать ID сети (главного сайта) для которой мы хотим получить опции. А get_site_option() - это её обертка и в ней мы не может указать ID сети - там всегда используется текущая сеть.

Повторюсь, в мультисайт сборке, как правило используется всего один основной сайт (сеть), это значит что в 99% случаев опция get_network_option() равна get_site_option().

«Блоги» в MU

Это сайты, которые находятся под управлением основного сайта (сети). У каждого из таких блогов есть отдельная таблица *_options. get_blog_option() получает данные из этой таблицы. По сути это обертка для функции get_option(), только получает она опции указанного блога, а не текущего.

Отличия Multisite от обычной установки

Отличия в файлах

Файлы загружаются в ту же директорию wp-content/uploads. Более того, ничего не меняется для главного сайта сети. Изменения видны только для доп. сайтов сети: у них файлы загружаются в новую папку wp-content/uploads/sites/2, где 2 - это ID сайта сети.

Расположение файлов в сети мультисайт

Отличия в таблицах базы данных

Создается 6 новых таблиц с префиксом главного сайта. Таблицы: users и usermeta становятся общими для всех сайтов сети. Стольные таблицы создаются отдельно для каждого сайта и отличаются они префиксом, например если у главного сайта он был wp_, то у первого сайта сети он станет wp_1_.

Какие дополнительные таблицы создаются:

wp_blogs
Все сайты подсети.
wp_blogmeta

C версии 5.1. Подробнее. Таблица для глобальных опций сайта сети, которые предполагается использовать в сети сайта, а не отдельно на сайте. Отдельные опции сайта нужно хранить в таблице опций отдельного сайта. Не путайте с wp_sitemeta.

Связанные функции:

get_site_meta( $id, $meta_key, $single )
update_site_meta( $id, $meta_key, $meta_value, $prev_value )
add_site_meta( $id, $meta_key, $meta_value, $unique )
delete_site_meta( $id, $meta_key, $meta_value )
wp_blog_versions
Содержит текущую версию базы данных каждого сайта. Данные обновляются при обновлении БД для каждого сайта сети.
wp_registration_log
Содержит данные администраторов сайтов, которые создаются при создании сайтов.
wp_signups
Содержит пользователей, которые были зарегистрированы через базовую регистрацию WordPress со страницы: Администрация > Супер Админ > Настройки.
wp_site
Содержит, адреса основных сайтов.
wp_sitemeta
Данные сайтов: различные опции, включая администратора сайта.
wp_users
Список пользователей всех сайтов сети. Это общая таблица пользователей для всей сети. Это привычная таблица, только в мультисайт версии добавляются еще 2 поля: spam и delete.
wp_usermeta
Содержит мета-данные пользователей. Настройки пользователя для разных сайтов сети.
Базовые таблицы каждого сайта сети
wp_posts, wp_postmeta, wp_options, wp_terms и т.д.. Для каждого сайта сети создаются одинаковые таблицы, но с разным префиксом: wp_options, wp_1_options, wp_2_options ...

-

При написании были использованы следующие материалы и личный опыт:

52 комментария
Полезные 8Вопросы 5 Все
    Войти