Раздел помощи SpaceWeb

WordPress Multisite (мультисайт)

23 июн, 2023

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

Такой подход дает ряд преимуществ:

  • Обновлять ядро CMS, темы и плагины нужно один раз
  • Если необходимо плагины можно активировать для всех сайтов сети
  • Пользователям не нужно заводить больше одной учетной записи, можно добавить нового пользователя к новому сайту сети
  • Значительно ускоряется обмен данными в объединенной сети сайтов

Чтобы включить WordPress Multisite нужно выполнить следующие действия:

Настройка DNS для сайта

Для работы с функцией WordPress Multisite используются поддомены. Чтобы не добавлять поддомены по одному, нужно внести изменения в настройки DNS домена.

Перейдите в панель управления аккаунта «Домены» → «Мои домены» напротив домена нажмите на кебаб-меню и перейдите в раздел Добавить поддомен.

Добавьте поддомен вида  *.mysite.ru и направьте его на сайт, к которому привязан основной домен mysite.ru

После внесения изменений можно добавлять любое количество поддоменов из административной части WordPress они будут работать без внесения дополнительных настроек в DNS.

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

Добавить файл .host_name.php для корректной работы роутинга

В корневом каталоге аккаунта создайте файл .host_name.php Откройте его и добавьте указанные строки:

<?php

if(isset($_SERVER['HTTP_CLEARSUBHOST']))
{
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_CLEARSUBHOST'];
$_SERVER['SERVER_NAME'] = $_SERVER['HTTP_CLEARSUBHOST'];
}

Сохраните файл

Изменение настроек в файлах конфигурации и .htaccess и активация режима мультисайт

Отредактируйте конфигурационный файл сайта wp-config.php. Внести правки можно используя Файловый менеджер. Перейдите в соответствующий раздел панели управления аккаунтом «Хостинг» → «Файловый менеджер» Перейдите в папку, где находятся файлы сайта, найдите и откройте файл wp-config.php

Измените параметр с false на true в строке:

define( 'WP_ALLOW_MULTISITE', false );

После изменения строка будет выглядеть так:

define( 'WP_ALLOW_MULTISITE', true );

Если такой строки нет, то ее необходимо добавить после строки

define( 'WP_DEBUG', false );

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

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

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'Имя_вашего_сайта.ru');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

Замените содержимое файла .htaccess на:

php_value auto_prepend_file "/home/u/username/.host_name.php"

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond % -f [OR]
RewriteCond % -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

Путь /home/u/username/ переменной php_value auto_prepend_file необходимо изменить, u - первая буква логина аккаунта, username - логин аккаунта

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

Новые сайты можно добавить в разделе «Мои сайты» → «Управление сетью» → «Сайты».

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