Создание Multisite-сети в WordPress позволяет управлять несколькими сайтами с одной установки WordPress. Это особенно полезно для агентств, крупных проектов или учебных порталов, где нужно централизованно контролировать множество ресурсов. В этой статье мы подробно разберём процесс создания Multisite-сети, настройки и практические примеры, включая работу с плагинами и кодом.
Что такое WordPress Multisite и зачем он нужен
WordPress Multisite — это функциональность, встроенная в ядро WordPress, которая позволяет запускать несколько сайтов на одной установке. Вы получаете единый административный интерфейс для управления всеми сайтами, общую базу данных, плагины и темы, которые можно активировать глобально или для отдельных сайтов.
Основные преимущества Multisite:
- Централизованное управление несколькими сайтами.
- Экономия ресурсов сервера и удобство обновлений.
- Разделение контента и пользователей по сайтам.
Однако есть и ограничения, например, все сайты используют одну базу данных, и сложнее реализовать полную изоляцию.
Как активировать режим Multisite в WordPress
Для включения Multisite необходимо внести изменения в файл wp-config.php. Добавьте следующую строку перед строкой /* That's all, stop editing! Happy blogging. */:
define('WP_ALLOW_MULTISITE', true);После этого зайдите в админку WordPress в раздел «Инструменты» → «Создать сеть». Выберите формат адресов сети — поддомены (site1.example.com) или поддиректории (example.com/site1). Обратите внимание, что поддомены требуют поддержки wildcard DNS на сервере.
Далее система предложит добавить несколько правил в wp-config.php и .htaccess. Например, для поддиректорий:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'example.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);И правила в .htaccess:
# 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Настройка и управление сайтами в Multisite
После успешной активации появится новый пункт меню «Сайты» в админке сети. Здесь вы можете создавать новые сайты, указывать их адреса, администраторов и язык.
Каждый сайт имеет собственную панель управления с ограничением прав, если вы не супер-администратор сети.
Для удобного управления плагинами и темами используйте встроенный раздел «Плагины» и «Темы» сети. Вы можете активировать их для всех сайтов или отдельных.
Пример: как ограничить доступ к плагину только для главного сайта
Добавьте следующий код в functions.php вашей темы или в собственный плагин:
function wpvip_restrict_plugin_activation() {
if (!is_main_site()) {
deactivate_plugins('akismet/akismet.php'); // Пример деактивации Akismet для всех кроме главного сайта
}
}
add_action('admin_init', 'wpvip_restrict_plugin_activation');Так вы гарантируете, что определённые плагины работают только на основном сайте.
Использование плагинов для расширения возможностей Multisite
Для управления сетью и оптимизации работы Multisite можно использовать специальные плагины:
- WPExpertReview — позволяет создавать централизованные отчёты по всем сайтам сети, что удобно для контроля качества контента. Подробнее на wpshop.ru.
- Clearfy Pro — оптимизация и ускорение работы Multisite, отключение ненужных функций на уровне сети.
- My Popup — показывает кастомные всплывающие окна на разных сайтах сети с централизованным управлением.
Практические советы по поддержке и безопасности Multisite
Multisite требует повышенного внимания к безопасности и резервному копированию. Вот основные рекомендации:
- Регулярно делайте бэкапы базы данных и файлов, учитывая, что вся сеть хранится в одной базе.
- Ограничьте права администраторов сайтов, чтобы избежать случайного нарушения работы всей сети.
- Используйте плагин безопасности, совместимый с Multisite, например, Clearfy Pro.
- Следите за ресурсами сервера — при большом числе сайтов нагрузка может существенно увеличиться.
Пример функции для автоматического отключения неиспользуемых сайтов
Вы можете отключать неактивные сайты автоматически, чтобы не перегружать систему:
function wpvip_auto_deactivate_inactive_sites() {
$sites = get_sites();
$threshold = strtotime('-6 months');
foreach ($sites as $site) {
switch_to_blog($site->blog_id);
$last_post_date = get_lastpostdate('Y-m-d H:i:s');
if ($last_post_date && strtotime($last_post_date) < $threshold) {
update_blog_status($site->blog_id, 'archived', 1);
update_blog_status($site->blog_id, 'public', 0);
}
restore_current_blog();
}
}
add_action('wp_scheduled_event', 'wpvip_auto_deactivate_inactive_sites');Эта функция отключит сайты, где не было публикаций более полугода.