Мультисайт на WordPress. Настройка, плюсы и минусы

Ранее в статье, посвящённой Первоначальной настройке WordPress, я упомянул о возможности создать на базе WordPress мультисайт. Почему и зачем вообще это делать? Ведь всегда можно создать отдельный сайт с отдельным клиентом на отдельном поддомене.

У данного подхода есть свои плюсы и минусы, из из которых я могу выделить следующее:

Плюсы и минусы Мультисайта на WordPress

Плюсы:
  1. Если на вашем сайте уже был подключён Adsense, РСЯ или любые другие рекламные сети, то для мультисайта не придётся отдельно проходить модерацию. Это в том случае, если сайт установлен в подкаталог;
  2. При переносе сайта с хостинга/vds на новое место, переносится вся сеть мультисайтов;
  3. Приобретённые лицензии на плагины продолжают действовать, правда требуют повторной активации. Это в том случае, если при установке мультисайта используется не сеть поддоменов, а сеть подкаталогов. То есть games.shadani.ru — будет требовать отдельную лицензию, но если установить мультисайт в подкаталог типа shadani.ru/games — плагин будет считать, что всё это один сайт;
  4. Централизованное управление сайтами, это особенно полезно когда у вашего сайта есть несколько авторов — есть много способов контролировать их действия;
  5. Возможность использовать разные темы оформления и дизайна на разных разделах в пределах одного домена.
Минусы:
  1. Общий код используемых тем. Если вы используете одну и ту же тему в рамках мультисайтовой сети, редактирование исходного кода этой темы отразится на обоих сайтах. С одной стороны это не так страшно, поскольку не придётся заново подключать ту же метрику и другой посторонний код от различных систем. С другой стороны — посторонний код на втором сайте возможно вам и не нужен, и для того чтобы этого избежать придётся использовать другую тему, либо делать её дубль. Данное свойство распространяется только на файлы функций и не мешает иметь разные CSS на сайтах.
  2. Незначительные баги. Не смотря на то, что сама по себе функция по созданию сети блогов в WordPress далеко не нова, в зависимости от настроек сервера то и дело проскакивают незначительные глюки. Например, на одной из своих сетей я словил незначительную ошибку, которая не даёт мне редактировать исходный код плагинов и тем прямо из админки WordPress. Это не то чтобы проблема — отредактировать эти файлы можно в админке хостинга или просто вручную на веб-сервере, но порой это не очень удобно.

Вот в общем то и всё, создавать мультисайт или делать поддомены вручную — дело каждого, у обоих подходов есть свои плюсы и минусы. Лично я перевёл свои проекты в мультисайты только для разделения сайтов на несколько тематик, что положительно сказалось на поведенческих факторах. Плюс иметь одну админку на все проекты в рамках одного домена довольно удобно =).

Так вот, если вы решились на такое преобразование сайта — разберём как это сделать.

Подготовка

Обязательно сделайте бекап действующего сайта вместе с дампом базы данных, вдруг функционал мультисайтов вам не зайдёт. Данную процедуру я описывал в статье Перенос WordPress сайта на другой домен без плагинов.

Если ваш сайт уже имеет определённое количество статей и вес в поисковых системах — стоит позаботиться о сохранении структуры статей. Дело в том, что после преобразования слетят настройки многих плагинов и настроек самого WordPress, в том числе структура постоянных ссылок. Поэтому, не забудьте заранее пройти в админку WP на вкладку настройки-постоянные ссылки и запомнить, сохранить, записать текущую структуру формирования URL.

Wordpress multisite

Нам понадобится доступ к файлу wp-config, он находится в папке вашего сайта. Для активации режима мультисайта в него нужно дописать одну строчку.

Данный файл всегда лежит в папке вашего сайта. Например, если использовать хостинг timeweb, вам нужно пройти в файловый менеджер, выбрать папку public_html и…всё) Именно там вы его и найдёте.

Wordpress wp_config timeweb

Откройте файл wp-config и допишите в самом конце строчку:

define('WP_ALLOW_MULTISITE', true);

Неважно в какую часть вы допишите данный код, однако рекомендуется дописывать его перед строчкой «это всё, дальше не редактируем». Оно и понятно — так проще понять какие именно строчки вы дописали сами, а какие были созданы самим WP при его установке.

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

По возвращению в админку WordPress вы уже заметите изменения, во вкладке «инструменты» появится новая функция — установка сети (network setup). Просто так активировать переход в сеть не удастся — придётся отключить все используемые плагины.

На экране создания сети сайтов необходимо будет указать название сети и email администратора. Всё это указывается лишь для вашего удобства и нигде на будущих сайтах не фигурирует.

Далее WordPress попросит вас указать, использовать ли структуру подкаталогов или поддоменов. Выбирайте на свой вкус, на мой взгляд система подкаталогов выглядит более органично, но это зависит от ваших нужд. Иногда WordPress может ругнуться на то, что ваш сайт живёт уже очень давно, тогда он соврёт вам что единственный способ использовать систему мультисайтов — на поддоменах. полный текст ошибки звучит так:

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

Поменять настройки с поддоменов на подкаталоги не представляет проблем, так что если WP не даёт вам выбора — соглашайтесь.

Жмём «Установить» и wordpress попросит нас внести определённый код в файлы .htaccess и wp_config.php. Нужно отметить, что файл .htaccess нужно перезаписать полностью, с затиранием ранее написанного в нём кода.

Если WordPress отказался использовать подкаталоги

Такое бывает — ничего страшного. Если прям хочется использовать именно режим подкаталогов — идём редактировать файл wp-config.

Необходимо заменить строчку: «define( ‘SUBDOMAIN_INSTALL’, true );», указав вместо «true» значение «false».

Затем открываем файл .htaccess и меняем его содержимое на:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

После установки режима «мультисайт»

Внесение изменений в файл .hatccess и wp_config приведёт к тому, что вас выбьет из админки. По возвращению перед вами предстанет немного другая панель администрирования WordPress.

Это панель администратора сети, именно с её помощью вы теперь управляете доступом к темам, плагинам, обновлениям и пользователям. Первым делом пройдите в настройки — параметры сети, отключите регистрацию пользователей на сайте, а так же задайте максимальный размер файлов и доступные пользователям форматы.

Очень важно! Скорее всего, после преобразования WP в мультисайт, структура статей на вашем сайте изменилась. По умолчанию родительский сайт получает приписку /blog, чтобы её убрать, перейдите в меню «Сайты-Все сайты — изменить — настройки. Найдите пункт «Permalink Structure» и впишите в него сохранённую ранее структуру оригинального сайта.

С панели админа сети можно попасть в консоль «родного» сайта. Включите там все плагины, не забудьте ещё разок посетить настройки — постоянные ссылки, дабы убедиться в том, что структура оригинального сайта сохранена.

Вот собственно и всё =) Используйте вверенное вам знание с умом, применений у данного функционала — вагон и маленькая тележка и ограничен он только лишь вашей фантазией. Каждый новый сайт внутри такой сети будет иметь собственное оформление и функционал, это не только удобно, но и здорово экономит ресурсы сервера и хостинга. Удачи.