WordPress Мультисайт – это такой вариант конфигурации WP, который позоляет вам использовать неограниченное количество сайтов в пределах одной-единственной установки WordPress и управлять всеми этими сайтами как суперадминистратор.
Режим мультисайтовости стал частью ядра WordPress в версии 3.0, раньше это был плагин WordPress Multi-user (MU), и поэтому даже сейчас вы можете встретить название мультисайтовости как WordPress MU.
Кстати, хочу также порекомендовать вам свой видеокурс по созданию интернет-магазина на WordPress + WooCommerce с нуля и без знаний кода.
Из особенностей можно отметить следующее:
site.ru/site1
, либо поддомены site1.site.ru
, либо даже независимые домены для каждого сайта!Тут, если вы реализуете мультисайтовость на уже существующем сайте, обычно рекомендуется сделать полную резервную копию — понятное дело, что это не обязательно, однако поможет вам избежать возникновения проблем.
Также на первом шаге я предлагаю вам решить, хотите ли вы использовать поддиректории или поддомены (прилинковка целых доменов тоже возможна, но считается следующем этапом, когда сеть уже установлена).
mod_rewrite
(если на сайте вы уже используете постоянные (или как их ещё называют — красивые) URL, то значит, что всё окей.*.вашдомен.ru
.Также будет не лишним упомянуть, что WordPress уже должен быть установлен.
Откройте конфигурационный файл WordPress wp-config.php
, который лежит в корне вашего сайта или на одну директорию выше (для этого может понадобиться подключиться по FTP) и найдите следующую строку:
require_once( ABSPATH . 'wp-settings.php' );
В любом месте до этой строки вставьте следующую директиву, которая включает возможность установки режима Multisite:
/* Включение режима WordPress Мультисайт */ define( 'WP_ALLOW_MULTISITE', true );
Заходим в Плагины и деактивируем (но не удаляем) их все.
Если вдруг вы пропустите этот шаг, то в следующем шаге вас всё равно попросят это сделать.
После сохранения файла переходим в админку сайта и видим новый пункт в меню Инструменты > Установка сети.
После того, как нажимаем кнопку «Установить», попадаем на страницу с пошаговой инструкцией установки:
Обратите, что если вы выбрали в качестве опции «Поддомены», то возможно, что в следующем шаге вы столкнётесь с ошибкой «Возможно, маска DNS настроена неправильно!», там также будут и инструкции, как её настроить. Если не сможете разобраться сами, то думаю можно написать в супорт хостинга и они вам всё сделают (по крайней мере мне на beget сделали).
Выполняем указанные инструкции и после того, как вы сохранили изменения в файлах, на этом же экране кликаем внизу на ссылку «Войти». Авторизуемся, и в результате у нас в левом верхнем углу появляется выпадающее меню Мои сайты.
И для того, чтобы вы стали настоящим мастером по мультисайтовости, я залезу под капот (но не слишком глубоко) и покажу вам, чем отличается мультисайт от обычной установки WordPress.
Вот так выглядит консоль управления сетью и доступ к ней имеется только у суперадминистраторов (это же вы!).
Как видите, всё очень похоже на стандартную консоль WordPress, нет только пунктов управления контентом, зато появился пункт меню «Сайты».
Также некоторые плагины будут добавлять свои настройки именно сюда, но большинство — непосредственно в админки подсайтов сети.
И, как я уже говорил, про администрирования я напишу отдельный пост на следующей неделе.
Что касается файлов, то если не считать изменений, которые мы вносили в wp-config.php
и в .htaccess
(для поддиректорий), остаётся только одно отличие — папка загрузок сайта (обычно wp-content/uploads
).
Сама папка загрузок используется как есть только для первого созданного сайта сети (основного, с ID 1), затем же в ней создаётся подпапка sites
, а в ней в свою очередь ещё подпапки, название каждой — ID сайта, для медиафайлов которого используется.
Чтобы было более наглядно, вот как это выглядит:
В базе данных тоже нет ничего замысловатого:
wp_sitemeta
содержит все-все настройки сети (аналог wp_options
).wp_
, wp_1_
, wp_2_
и так далее.В управлении (администрировании) сети WordPress Multisite по сути нет ничего сложного. Но тем не менее люди иногда сталкиваются с трудностями, поэтому в этой, второй части поста про мультисайтовость, я постараюсь рассказать и показать, что к чему.
Первая часть находится по этой ссылке, она скорее как вводная, но в то же время там я рассказываю про установку сети.
А теперь готовьтесь, что будет много скриншотов и мало текста. Скажу также, что все действия будут проводиться через консоль мультисайта, поэтому, если вы не можете найти указанный пункт меню или что-либо ещё, убедитесь, что вы действительно находитесь там, где надо.
Попасть в неё всегда можно через админ-бар, Мои сайты > Управление сетью > Консоль.
Переходим в Сайты > Добавить новый.
Так как в предыдущей части поста я устанавливал свой мультисайт в поддиректории, то при создании подсайта мне предлагают указать название поддиректории.
Думаю с остальными полями проблем возникнуть не должно. Обратите внимание, что когда вы будете вводить электронную почту пользователя, то у вас появится выпадающий список уже существующих пользователей сети, чей емайл совпадает с тем, что вы вводите.
Если вы наведёте на какой-либо из сайтов в меню Сайты, то у вас появится список ссылок-действий (для главного сайта кстати доступны только «Изменить», «Консоль», и «Перейти»).
Тут я пожалуй начну с конца.
Думаю тут особых комментариев не нужно, вкладки «Пользователи» и «Темы» будут рассмотрены дальше по ходу поста.
Что касается вкладки «Настройки», то она просто содержит практически все опции (настройки) каждого сайта в простом виде — название настройки в базе данных и текстовое значение (массивы тут не поддерживаются и не доступны для редактирования). Будьте осторожны с настройками там и не меняйте то, в чём не уверены.
Если вы просто добавляете пользователя через консоль сети в меню Пользователи > Добавить нового, тогда пользователь добавляется глобально в базу сети, однако не присваивается ни к какому сайту (это делается отдельно), при этом пользователю приходит по email ссылка, с помощью которой он сможет установить свой пароль и в этоге получит доступ к странице в админке, в которой он сможет отредактировать данные профиля.
После этого у добавленного пользователя есть две судьбы — либо его назначат суперадминистратором, либо его присвоят к какому-либо из сайтов.
Ах да, суперадминистратор это такой человек, который имеет доступ абсолютно ко всему и на всех сайтах, хотя наверное об этом и так нетрудно догадаться. Сделать кого-либо суперадмином очень просто, достаточно прямо из консоли сети перейти в Пользователи и затем на страницу конкретного пользователя. Там будет чекбокс.
В консоли сети переходим в Сайты > Все сайты, выбираем нужный, наводим на него мышкой, жмём ссылку «Изменить» и на открывшейся странице переходим на вторую вкладку — Пользователи.
На этой странице вы можете добавить к сайту пользователя с выбранной ролью, и это может быть как пользователь, существующий в базе, так и новый.
У администрирования плагинов и тем в сети WordPress Multisite существует одно принципиальное различие, поэтому предлагаю прочитать эту главу внимательно.
Когда через консоль сети вы устанавливаете/загружаете тему, то сначала она недоступна для использования на сайтах сети. Вы сразу же можете нажать Разрешить для сети — тогда тема сразу станет доступна для использования на всех сайтах.
Однако, вы можете сделать так, чтоб тема была доступна для использования только на одном или только на нескольких сайтах сети, для этого переходите в управление сайтом на вкладку «Темы» и тут уже вы можете разрешить тему непосредственно для данного сайта.
Ситуация с плагинами чуть ли не противоположная — после установки плагина на сайт он становится доступным для активации сразу на всех сайтах сети, однако, если вы кликаете Активировать для сети, то он становится принудительно включен для всех сайтов.
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
Доброго времени!
Хорошая статья, спасибо!)
Подскажите пжлс, есть следующая задача, создать сайт на пяти разных языках с разными доменами.
То есть,
- сайт на русском, домен site.ru
- сайт на украинском, домен site.ua
- сайт на беларусском, домен site.by
- сайт на английском, домен site.com
- сайт на немецком, домен site.de
Дизайн и контент сайта одинаковый, только на разных языках.
1. Возможно ли такое реализовать по вашей статье?
2. Заниматься настройкой мультисайтовости лучше в начале разработки или можно сделать полностью сайт на одном языке\домене, а потом добавить остальные?
За ранее спасибо, если не затруднит посоветуйте более правильный и простой вариант для данной реализации!)
Доброго!
Спасибо!
1. Да. Там нужно только плагин для прилинковки доменов к мультисайту. Multisite Domain Mapping или что-то вроде этого
2. Пока у вас один сайт, можете спокойно им заниматься, даже не устанавливая сеть, но как только появится второй, рекомендую уже делать его на установленном мультисайт 🙃
Спасибо большое за ответы!
Добрый день. Есть задача объединить в мультисайт несколько разных сайтов:
1. Проблема в том что все они со своим набором плагинов и тем, разные версии WP, да и в целом криво сделаны
2. Что делать с БД пока не понимаю. Как их объединить и подключить к мультисайту. Так же есть нюанс, что базы, есть большие (сайты на конструкторах сделаны и некоторые вестя по 200-300Мб), есть с разыми префиксами.
Как всё это подружить и имеет ли вообще смысл с точки зрения, скорости и занимаемого места на хостинге.
Добрый день!
Думаю в объединении сайтов и нет большого смысла
Здравствуйте.
Идея с разными языками при помощи мультисайта - интересная, так как нет необходимости покупать например доп. плагин WPML, больше возможностей так как сайты разные и т.д.
Вопрос такой. На основном сайте пусть это будет английский язык добавляется новая статья, страница или товар. На втором сайте (русский язык) добавленный материал тоже отразиться? На каком языке? Надо будет в ручную перевести?
Здравствуйте!
Ну в случае с мультисайтом, на втором сайте посты автоматически конечно не появятся... Кстати говоря, очень рекомендую плагин Polylang
Добрый день!
Есть интренет-магазин. Создал поддомен через мультисайт, возникла проблема, что при добавление товара в корзину на доддомене и переходе в нее, товар не добавляется, корзина остается пустой. А так же не добавляются и не сохраняются зоны доставки на поддомене в woocommerce. Можете подсказать в чем причина этих ошибок и как это решить?
Спасибо.
Михаил подскажите, как можно реализовать мультисайт в плане разных админок а товары чтобы выводидись все на одной странице.
Можно либо через плагин, либо с функцией
switch_to_blog()
закодить самому.