Мультисайтовость в WordPress. Часть 1 — Что, зачем и как? Установка в 2 шага. Особенности.

Да, знаю, что в общем-то эта тема в интернете не была обделена вниманием, но я всё же возьмусь за неё, кроме того, ниже вы найдёте видео по установке WotdPress Multisite.

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

Для кого эта серия статей?

  • Для тех, кто про мультисайтовость ни слухом ни духом.
  • Для тех, кто неоднократно слышал про WordPress Multisite, но так и не знает, как к нему подступиться.
  • Для тех, кто уже хорошо разбирается в мультисайтовости и даже возможно уже юзает эту функцию, но хотел бы как-нибудь систематизировать всю ту информацию, которая у него в голове и в закладках браузера.

Что такое — режим мультисайтовости (WordPress Multisite) ? 

WordPress Multisite (мультисайтовость) — это возможность движка WordPress, появившаяся в 3.0 версии, которая позволяет создавать и использовать неограниченное количество сайтов на одном и том же движке. И «неограниченное» нужно понимать именно буквально, потому что существуют сайты, у которых в сети Multisite Network миллионы (!! самому трудно поверить) подсайтов.

Из особенностей можно отметить следующее:

  • Общий WordPress, общая база данных, общие темы и плагины, общий FTP, общие ресурсы сервера.
  • В качестве URL-адресов сайтов сети вы можете использовать либо подпапки site.ru/site1, либо поддомены site1.site.ru, либо даже независимые домены для каждого сайта!
  • Очень легко и просто добавлять пользователей с одного сайта на другой, при этом у одного и того же пользователя могут быть разные роли на разных сайтах. Это также значит, что у каждого сайта может быть собственный администратор.
  • Вы даже можете реализовать пользователям возможность регистрироваться и создавать свой собственный сайт.
  • Очень удобно то, что обновления устанавливаются и применяются сразу ко всем сайтам сети.
  • Также мне нравится возможность активировать какие-либо плагины как на некоторых сайтах сети, так и принудительно для всех сайтов одновременно.
  • Ну и добавлю по поводу тем — то, что на каждом подсайте можно использовать разные темы, это понятно, но вы также можете использовать и одну тему, индивидуально подстроенную под каждый сайт при помощи дочерных тем.

Когда нужно использовать и когда не нужно? 


А вот тут я вас разочарую — я считаю, что каждый сам может решить, нужно ли ему использовать мультисайтовость для решения конкретно своих задач, важно лишь хорошо понимать особенности, которые я перечислил выше.

Например я использую WordPress Multisite при создании мультиязычных сайтов. Иногда компании просят английскую версию, и нет ничего проще, чем добавить её на поддиректорию /en при помощи создания сети.

Обозначу здесь лишь один важный момент, связанный с переводом интерфейса тем — на мой взгляд здесь проще всего на русском сайте включить в Настройки > Общие русский язык, а на английском — английский. И потом просто-напросто локализовать свою тему. Просто, как два пальца об асфальт!

Как установить в 2 простых шага? + видео 

Шаг 1. Подготовка.

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

Также на первом шаге я предлагаю вам решить, хотите ли вы использовать поддиректории или поддомены (прилинковка целых доменов тоже возможна, но считается следующем этапом, когда сеть уже установлена).

  • Если вы используете поддиректории, то всё, что вам нужно, это рабочий mod_rewrite (если на сайте вы уже используете постоянные (или как их ещё называют — красивые) URL, то значит, что всё окей.
  • Если вам нужны поддомены, тогда вам потребуется настроенная маска для поддоменов. Настраивается она для каждого домена отдельно.

    Кроме того, инструкции могут быть индвидуальными для каждого хостинга/сервера. Например на своём хостинге (beget) я просто написал в супорт и сказал им, для какого домена хочу включить маску и мне всё сделали.

    в cPanel же, насколько я знаю, достаточно создать поддомен, начинающийся со знака * *.вашдомен.ru.

Также будет не лишним упомянуть, что WordPress уже должен быть установлен.

Шаг 2. Установка сети

На этом шаге тоже ничего сложного нет, если хотите, можете посмотреть видео, либо почитать текстовое описание.

Итак, тут вам понадобится открыть файл wp-config.php и добавить перед строчками «/* That’s all, stop editing!… (Это всё, дальше не редактируем)» следующее:

define('WP_ALLOW_MULTISITE', true);

После сохранения переходим в админку сайта и видим новый пункт в меню Инструменты > Установка сети.

Установка сети WordPress Multisite.
Хочу обратить ваше внимание на то, что на этом же самом шаге WordPress предлагает выбрать либо режим поддоменов, либо режим подкаталогов. А так как я установил WordPress уже в подкаталог, то выбора мне не предлагают.

Смело жмём кнопку «Установить» и в случае с выбором поддиректорий получаем следующее:

Продолжаем создавать сеть сайтов на WordPress.

Выполняем указанные инструкции и после того, как вы сохранили изменения в файлах, на этом же экране кликаем внизу на ссылку «Войти». Авторизуемся, и в результате у нас в левом верхнем углу появляется выпадающее меню Мои сайты.

Выпадающее меню Мои сайты в WordPress Multisite.

Администрированию сети WordPress Multisite будет целиком и полностью посвящена вторая часть поста, которая выйдет через неделю.

Какие фактические отличия от обычного сайта на WordPress? 


И для того, чтобы вы стали настоящим мастером по мультисайтовости, я залезу под капот (но не слишком глубоко) и покажу вам, чем отличается мультисайт от обычной установки WordPress.

Какие отличия в админке? 


Вот так выглядит консоль управления сетью и доступ к ней имеется только у суперадминистраторов (это же вы!).

Консоль сети WordPress Multisite

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

Также некоторые плагины будут добавлять свои настройки именно сюда, но большинство — непосредственно в админки подсайтов сети.

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

Какие отличия в файлах? 


Что касается файлов, то если не считать изменений, которые мы вносили в wp-config.php и в .htaccess (для поддиректорий), остаётся только одно отличие — папка загрузок сайта (обычно wp-content/uploads).

Сама папка загрузок используется как есть только для первого созданного сайта сети (основного, с ID 1), затем же в ней создаётся подпапка sites, а в ней в свою очередь ещё подпапки, название каждой — ID сайта, для медиафайлов которого используется.

Чтобы было более наглядно, вот как это выглядит:

papki-zagruzok-sajtov

Какие отличия в базе данных? 


В базе данных тоже нет ничего замысловатого:

  • Добавляется несколько новых таблиц, содержащих информацию о сети и о сайтах в ней, к примеру таблица wp_sitemeta содержит все-все настройки сети (аналог wp_options).
  • Таблицы стандартной установки WordPress дублируются для каждого подсайта, но с тем условием, что к их (таблиц) префиксам добавляется ещё и ID сайта в сети. Например wp_, wp_1_, wp_2_ и так далее.

Это была обзорная вступительная статья по WordPress Multisite, вторая часть уже есть, вот ссылка, скоро будет и третья.

Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.

Ещё посты по WordPress Multisite