WordPress как на ладони
wordpress jino

Режим Multisite в WordPress

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

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

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

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

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

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

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

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

    • «подкаталог» - site.ru/site1
    • «поддомен» - site1.site.ru
    • отдельный домен. Но для этого нужно устанавливать плагин: WordPress MU Domain Mapping;
  • В MU очень удобно получать данные одного сайта сети на другом сайте и наоборот;

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

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

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

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

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

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

Установка Multisite

Устанавливается MU не сложно - просто!

1. Включаем установку MU

Перед запуском первой установки WordPress или после того, как вы уже установили WordPress - не важно. Откройте файл wp-config.php из основной папки WordPress и добавьте туда строчку:

define( 'WP_ALLOW_MULTISITE', true );

Добавить строку можно где-нибудь в начале файла, например, перед настройками подключения к БД.

2. Запускаем установку

После того как MU установка включена, нужно зайти в админ-панель и перейти в раздел Инструменты > Установка сети

multisite-install2

Теперь надо выбрать какой тип сети устанавливать: поддомены или подкаталоги:

  • Поддомены - каждый сайт сети будет иметь свой домен - поддомен основного домена: site1.site.ru, site2.site.ru.
    Для этого режима, нужно будет настроить сервер так, чтобы любой поддомен «смотрел» на папку куда установлен WordPress. Обычно это делается через обращение в службу поддержки вашего хостинг провайдера. Или можете попробовать, в панели управления хостингом, создать поддомен который начинается с * - *.site.ru.

  • Подкаталоги - все сайты сети будут иметь один домен: основной, и будут расположены под ним: site.ru/site1, site.ru/site2.
    Для работы этого режима нужно включить поддержку ЧПУ (красивых URL) в разделе: Настройки > Постоянные ссылки.

Какой режим выбрать, зависит от задач вашей сети сайтов. Чаще всего лучше выбирать режим поддоменов. С ними меньше проблем в дальнейшем - каждый сайт имеет свой личный домен, а значит нет потенциальных конфликтов URL, также в случае чего сайту можно купить отдельный домен. Режим подкаталогов хорошо подойдет, когда «мультисайт» используется, как единая сеть чего-то целого, например, для создания мультиязычного сайта.

После нажатия на кнопку «Установить», следуйте инструкциям, там все просто. В них WordPress попросит вас добавить несколько новых строк в файлы: wp-config.php и .htaccess.

Установка сети мультисайт

Все, готово! Сеть установлена и вам нужно снова войти на сайт, но теперь как супер-администратор.

На эту с страницу всегда можно попасть по прямой ссылке вида: http://multisite.ru/wp-admin/network/setup.php

Установка MU на уже рабочий сайт

MU можно установить и на рабочий сайт и это можно делать смело, если в этом есть смысл разумеется. Но прежде, обязательно сделайте резервную копию базы данных и файлов - мало ли что там может пойти не так...

Далее, деактивируйте все плагины и включите ЧПУ на сайте, если они не включены: Настройки > Постоянные ссылки.

Далее, следуйте инструкциям, которые чуть выше.

Переключение режимов: поддомены и подкаталоги

Если сайт существует больше месяца, то при включении установки MU будет доступен только режим поддоменов. Это нужно, чтобы избавить вас от потенциальных конфликтов между страницами и сайтами, например URL под-сайта (блога) может получиться такой же как URL страницы основного сайта: site.ru/superblog (подсайт) и site.ru/superblog (страница главного сайта). Если вашему сайту это не грозит, то режим можно изменить в любой момент, лучше конечно перед установкой MU.

Для смены режима измените константу SUBDOMAIN_INSTALL в файле wp-config.php:

define( 'SUBDOMAIN_INSTALL', true ); // поддомены

define( 'SUBDOMAIN_INSTALL', false ); // подкаталоги

Также, нужно будет обновить правила .htaccess.

Правильные правила после смены режима, вы найдете на странице адмни-панели: Управление сетью > Настройки > Установка сети. Иногда эта страница может быть скрыта, тогда пройдите по прямой ссылке вида: http://multisite.ru/wp-admin/network/setup.php

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

При установке 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(), только получает она опции указанного блога, а не текущего.

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

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

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

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

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

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

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

$wpdb->blogs
Все сайты подсети.
$wpdb->blog_versions
Содержит текущую версию базы данных каждого сайта. Данные обновляются при обновлении БД для каждого сайта сети.
$wpdb->registration_log
Содержит данные администраторов сайтов, которые создаются при создании сайтов.
$wpdb->signups
Содержит пользователей, которые были зарегистрированы через базовую регистрацию WordPress со страницы: Администрация > Супер Админ > Настройки.
$wpdb->site
Содержит, адреса основных сайтов.
$wpdb->sitemeta
Данные сайтов: различные опции, включая администратора сайта.
$wpdb->users
Список пользователей всех сайтов сети. Это общая таблица пользователей для всей сети. Это привычная таблица, только в мультисайт версии добавляются еще 2 поля: spam и delete.
wpdb->usermeta
Содержит мета-данные пользователей. Настройки пользователя для разных сайтов сети отличаются префиксом в индексе ключа. Например роли хранятся в таких метаполях: wp_capabilities, wp_1_capabilities, wp_2_capabilities ...
Базовые таблицы каждого сайта сети
wp_posts, wp_postmeta, wp_options, wp_terms и т.д.. Для каждого сайта сети создаются одинаковые таблицы, но с разным префиксом: wp_options, wp_1_options, wp_2_options ...

-

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

Режим Multisite в WordPress 26 комментариев
Полезные 2 Вопросы 5 Все
  • Максим @

    Здравствуйте, подскажите пожалуйста, я сделал мультисайт с подкаталогом, настроил всё нормально, но после переноса сайта, у меня слетел второй сайт, и в админку не пускает пишет:
    The page isn’t redirecting properly

    Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

    This problem can sometimes be caused by disabling or refusing to accept cookies.

    Ответить4 месяца назад #
  • Александр cайт: zrf-club.ru

    Подскажите, а как сделать так, чтобы одна загруженная картинка в медиа-библиотеке была доступна на всех сайтах сети?

    Я установил Network Shared Media но проблема в том, что нельзя выбрать общую картинку при выборе миниатюры поста, там просто нет ссылки от этого плагина.

    Ответить3 месяца назад #
    • Kama4659

      Пожалуй никак, у каждого сайта своя библиотека... Попробуй плагины поищи на эту тему...

      Ответить3 месяца назад #
  • Наталья cайт: katalog.ice-holding.ru

    Добрый день! Подскажите пожалуйста.

    На WP сделала сеть сайтов и новый подсайт katalog.ice-holding.ru .
    Но на новый подсайт и его консоль зайти не могу выдает ошибку:

    Текст ошибки:
    Не удается получить доступ к сайту
    Не удается найти DNS-адрес сервера multisite.ru.
    Попробуйте сделать следующее:
    Проверьте подключение к Интернету.
    Проверьте настройки прокси-сервера, брандмауэра и DNS.
    Выполните диагностику сети в Windows
    ERR_NAME_NOT_RESOLVED

    http://katalog.ice-holding.ru/wp-admin/

    Что не так?

    Ответить2 месяца назад #
    • andxbes

      Возможно на хостинге нужно включить , у домена, возможность иметь поддомены .В псевдонимах указать рядом с названием сайта еще и www.yoursite.ru *.yoursite.ru

      Ответить2 месяца назад #

Здравствуйте, !

Ваш комментарий