Проблема / Необходимость

Вы, вероятно, задавались вопросом, как создать сайт WordPress внутри уже установленной системы WordPress. Этот метод может быть очень полезен как для многосайтовой сети, так и для среды разработки или тестового сайта. К концу этой статьи вы сможете создавать и управлять сайтом WordPress внутри другой установки WordPress безопасно и эффективно.

Краткое резюме

  • Создание многосайтовой сети WordPress.
  • Использование подкаталогов или поддоменов.
  • Конфигурация файла wp-config.php et .htaccess.
  • Управление дочерними сайтами осуществляется через главную административную панель.
  • Меры предосторожности и контроля качества.

Когда использовать это решение

Это решение особенно актуально, если вы хотите:

  • Управляйте несколькими сайтами WordPress с помощью единой панели управления.
  • Легко создавайте различные среды (тестовую, производственную).
  • Тестируйте плагины или темы, не затрагивая основной сайт.
  • Предлагайте своим пользователям дополнительные сайты, например, личные блоги.

Когда НЕ следует использовать это решение

Избегайте этого решения, если:

  • У вас ограниченные серверные ресурсы, поскольку многосайтовые конфигурации могут быть ресурсоемкими.
  • Для вашего проекта требуются специфические конфигурации серверов, несовместимые с многосайтовыми системами.
  • Вам неудобно работать со сложными функциями управления WordPress и файлами конфигурации.

Предварительные условия / перед началом обучения

  • Обязательно сделайте полную резервную копию своего сайта.
  • Перед переходом к производственной среде проведите пробную эксплуатацию.
  • Для работы требуется WordPress 6.9.4+ и PHP 8.1+.
  • Предоставьте доступ по FTP/SSH для изменения конфигурационных файлов.
  • Убедитесь, что ваш хостинг поддерживает многосайтовую функциональность.

Наивный подход (и почему его следует избегать)

Распространенная ошибка — это ручное копирование папки WordPress в существующий каталог и попытка его установки. Это часто приводит к конфликтам баз данных и проблемам с путями. Кроме того, этот метод игнорирует конфигурации, необходимые для корректной работы мультисайтовой инфраструктуры, такие как управление... wp-config.php et .htaccess.

Правильный подход — пошаговое руководство

  1. Редактировать файл wp-config.php
    
    // Ajouter cette ligne juste avant /* That's all, stop editing! Happy publishing. */
    define('WP_ALLOW_MULTISITE', true);
          
  2. Получите доступ к инструменту установки сети.

    Войдите в панель управления WordPress, затем перейдите в раздел «Инструменты» > «Настройка сети».

  3. Выберите между поддоменами и подкаталогами.

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

  4. Настройте файл wp-config.php et .htaccess
    
    // Exemple pour wp-config.php
    define('MULTISITE', true);
    define('SUBDOMAIN_INSTALL', false); // Remplacez par true si vous utilisez des sous-domaines
    define('DOMAIN_CURRENT_SITE', 'votresite.com');
    define('PATH_CURRENT_SITE', '/');
    define('SITE_ID_CURRENT_SITE', 1);
    define('BLOG_ID_CURRENT_SITE', 1);
    
    // Exemple pour .htaccess
    # BEGIN WordPress
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ - [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(.*.php)$ $2 [L]
    RewriteRule . index.php [L]
    # END WordPress
          
  5. Создавайте и управляйте веб-сайтами через интерфейс.

    Для добавления новых сайтов перейдите в раздел «Мои сайты» > «Администрирование сети» > «Сайты».

Полный код



  

Код Пояснение

Данный код вносит изменения в файл. wp-config.php Для активации и настройки мультисайтовой версии WordPress. Определенные константы позволяют WordPress определить, что это мультисайтовая установка, и указать, используете ли вы поддомены или подкаталоги. Файл .htaccess Настроено на корректное переписывание URL-адресов в соответствии с выбранной структурой.

использование define('SUBDOMAIN_INSTALL', false);Вы выбираете организацию подкаталогов, что полезно для тестовых или внутренних сайтов. И наоборот, true Для поддоменов это идеально подходит для инсталляций, где каждый сайт требует четкого разграничения, например, site1.yoursite.comУбедитесь, что ваша DNS-система и хостинг-провайдер поддерживают поддомены с подстановочными знаками, если вы выберете этот вариант.

Варианты и сценарии использования

  • Используйте поддомены: + Изменить SUBDOMAIN_INSTALL à true в wp-config.php.
  • Среда разработки: Установите тему или плагин на дочерний сайт, не затрагивая основной сайт.
  • Сеть блогов: Предоставьте пользователям возможность создавать собственные блоги на вашем основном домене.

Интересный пример использования — создание сети для компании с несколькими брендами. Каждый бренд может иметь свой собственный веб-сайт под поддоменом, при этом используя общие ресурсы, такие как пользователи и глобальный контент. Многосайтовое решение также позволяет централизованно управлять обновлениями и безопасностью, упрощая обслуживание.

Дополнительный пример: плагин для мультисайтов

Добавить плагин, который активируется только на определенных дочерних сайтах, может быть непросто. Вот как это сделать:


// Installer un plugin seulement sur un site enfant spécifique
function activer_mon_plugin_sur_un_site_specifique() {
    if (get_current_blog_id() == 2) { // Remplacez 2 par l'ID de votre site enfant
        include_once(ABSPATH . 'wp-admin/includes/plugin.php');
        activate_plugin('mon-plugin/mon-plugin.php');
    }
}
add_action('wp_loaded', 'activer_mon_plugin_sur_un_site_specifique');
  

Этот код использует действие wp_loaded Чтобы проверить текущий ID сайта и активировать плагин только в том случае, если ID совпадает с указанным. Это удобный способ управления функциями на конкретных сайтах без загромождения главной панели управления.

Совместимость с Divi 5 / Elementor / Avada

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

В Divi 5 вы можете создавать глобальные макеты, которые применяются ко всем дочерним сайтам. Elementor требует подтверждения включения каждого пользовательского виджета на каждом подсайте, а Avada упрощает управление общими макетами с помощью Fusion Builder. Всегда тестируйте изменения на дочернем сайте, прежде чем применять их ко всем сайтам.

Распространенные ошибки и ловушки

ERREUR Вызывать Решение
Ошибка 404 на дочерних сайтах Неправильная конфигурация .htaccess Проверьте и исправьте правила перезаписи.
Проблемы с подключением к базе данных Конфликт при установке Проверьте префиксы таблиц и конфигурацию базы данных.
Несовместимые плагины Некоторые плагины не поддерживают мультисайтовую установку. Ознакомьтесь с документацией к плагину.
Недоступные поддомены Проблема с настройкой DNS Убедитесь, что DNS настроен для поддоменов с подстановочными знаками.

Советы по безопасности, производительности и техническому обслуживанию

  • Отслеживайте производительность серверов; многосайтовые конфигурации могут потреблять больше ресурсов.
  • Убедитесь, что каждый дочерний сайт защищен индивидуально.
  • Регулярно обновляйте темы и плагины, чтобы избежать уязвимостей в системе безопасности.
  • Для повышения скорости загрузки рекомендуется использовать CDN и кэширование.
  • Запланируйте регулярные проверки безопасности для каждого объекта в сети.

Послемонтажные проверки

  • Попробуйте создать новый сайт и проверьте его доступность.
  • Протестируйте основные функции (добавление контента, установка плагинов) на дочернем сайте.
  • Проверьте журналы сервера на наличие возможных ошибок.
  • Для оптимизации каждого сайта проведите проверку производительности с помощью таких инструментов, как GTMetrix или PageSpeed ​​Insights.

Если это не сработает

  1. Проверьте свой файл wp-config.php для синтаксических ошибок.
  2. Убедитесь, что файл .htaccess Настроено правильно, особенно если используются поддомены.
  3. Проверьте журналы сервера на наличие конкретных ошибок.
  4. Используйте инструменты отладки, такие как Query Monitor, для анализа SQL-запросов и ошибок PHP.

Ресурсы

FAQ

  • Как активация многосайтового режима влияет на производительность? Многосайтовая загрузка может потреблять больше ресурсов, поэтому проверьте возможности вашего хостинга.
  • Можно ли отключить многосайтовую сеть? Да, но для этого потребуется отменить изменения, внесенные в конфигурационные файлы.
  • Как дочерние сайты управляют темами и плагинами? Темы и плагины устанавливаются во всей сети, но могут быть активированы индивидуально для каждого сайта.
  • Все ли хостинг-провайдеры поддерживают мультисайтовую конфигурацию? Нет, важно уточнить это у вашего хостинг-провайдера.
  • Какой тип проекта идеально подходит для проекта, охватывающего несколько объектов? Блоговые сети, школы с множеством факультетов или компании с несколькими брендами.
  • Как управлять пользователями в многосайтовой сети? Пользователям можно назначать роли на один или несколько сайтов в зависимости от необходимости.