Мультисайт WordPress — это мощная возможность запускать несколько сайтов на одной установке WordPress. Особенно удобно, если вы хотите управлять несколькими проектами с общей базой данных и пользователями. В этой статье расскажем, как создать мультисайт на базе поддоменов, подробно разберём настройку, нюансы и дадим практические советы.
Что такое мультисайт WordPress и зачем нужны поддомены
Мультисайт — это сетевой режим WordPress, который позволяет создать сеть сайтов в одной установке движка. Каждый сайт в сети может иметь свой контент и настройки, но при этом все они используют общую базу данных (с разделением таблиц) и общие файлы.
Существуют два варианта организации мультисайта: на поддоменах (site1.example.com, site2.example.com) и на подкаталогах (example.com/site1, example.com/site2). В этой статье мы сфокусируемся на первом варианте — поддомены, так как он даёт больше гибкости и подходит для разных целей.
Подготовка к созданию мультисайта с поддоменами на WordPress
Прежде всего нужно убедиться, что ваш хостинг поддерживает работу с поддоменами и wildcard DNS (то есть любые поддомены должны автоматически разрешаться на ваш сервер). На WP-Host.ru, например, это можно настроить в панели управления доменом.
Также проверьте, что у вас есть доступ к файлу wp-config.php и .htaccess. Эти файлы нужно будет корректировать для включения мультисайта.
Настройка wildcard поддоменов на хостинге
Для wildcard поддоменов создайте DNS-запись типа A с указанием * в имени поддомена, например:
*.wp-host.ru— A — IP вашего сервера
Если DNS настроен корректно, все запросы к любым поддоменам wp-host.ru будут направляться на ваш сервер.
Включение мультисайта в WordPress с поддоменами
1. Откройте файл wp-config.php и добавьте перед строкой /* That's all, stop editing! Happy blogging. */ следующий код:
define('WP_ALLOW_MULTISITE', true);
2. Зайдите в админку WordPress в раздел Инструменты → Сеть. Выберите тип установки - Поддомены и задайте название сети и адрес электронной почты администратора.
3. После создания сети WordPress предложит добавить в wp-config.php и .htaccess специальные правила. Например, в wp-config.php добавить:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'wp-host.ru');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
В .htaccess заменить стандартные правила WordPress на:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress
Особенности и советы по работе с мультисайтом на поддоменах
При использовании поддоменов важно, чтобы SSL-сертификат поддерживал wildcard, иначе на поддоменах будут ошибки безопасности. На WP-Host.ru можно заказать wildcard SSL или использовать бесплатные сертификаты Let's Encrypt с поддержкой поддоменов.
Также следите за правильной настройкой куки для авторизации, чтобы пользователи могли логиниться на всех сайтах сети корректно.
Пример: добавление кастомного функционала для мультисайта
Допустим, нужно добавить функцию, которая будет работать отдельно для каждого сайта сети, но с общей базой. Создадим функцию с префиксом wphost_ для безопасности:
function wphost_get_current_blog_info() {
$blog_id = get_current_blog_id();
$details = get_blog_details( $blog_id );
return [
'blog_id' => $blog_id,
'domain' => $details->domain,
'path' => $details->path,
];
}
Эту функцию можно использовать для вывода информации о текущем сайте сети.
Управление плагинами и темами в мультисайте
В мультисайте плагины и темы устанавливаются глобально, но активируются отдельно для каждого сайта. В разделе «Администрирование сети» можно массово включать плагины для всех сайтов, если это нужно.
Для примера рассмотрим плагин Clearfy Pro, который хорошо подходит для оптимизации и безопасности WordPress. Его можно активировать на уровне сети, чтобы все сайты автоматически получили улучшения.
Совет: как ограничить доступ к админке мультисайта
Если нужно ограничить доступ к панели управления для некоторых сайтов сети, можно использовать следующий код в functions.php глобальной темы или в плагине:
function wphost_restrict_admin_access() {
if ( ! is_super_admin() ) {
wp_redirect( home_url() );
exit;
}
}
add_action( 'admin_init', 'wphost_restrict_admin_access' );
Это позволит ограничить вход в админку только для супер-администраторов сети.
Полезные плагины для мультисайта на WordPress
- Multisite Enhancements — улучшает UX панели управления мультисайтом.
- WP Multi Network — позволяет создавать сети внутри сети, если нужно.
- Domain Mapping System — удобное управление доменами для сайтов мультисайта.
Все эти плагины можно найти и установить с официального репозитория WordPress, а также посмотреть подробные обзоры на WPSHOP.ru.
Подведение итогов и рекомендации
Создание мультисайта WordPress с поддоменами требует правильной настройки DNS, конфигурационных файлов и SSL. Если всё сделать правильно, вы получите удобный инструмент для управления несколькими сайтами из одного места с минимальными затратами ресурсов.
Обязательно тестируйте каждый шаг на тестовом сервере перед переносом в продакшен. И не забывайте о безопасности: используйте актуальные версии WordPress и плагинов, а также делайте регулярные резервные копии.
Если хотите расширить функционал мультисайта, рекомендуем обратить внимание на плагины из магазина WPSHOP.ru — там есть много полезных инструментов для мультисайта и оптимизации.