Мультисайт в WordPress — удобный инструмент для управления несколькими сайтами на одной установке. Часто возникает задача не просто создать мультисайт, а перенести существующий сайт в мультисайт с изменением URL, например, при ребрендинге или реструктуризации. В этой статье подробно разберем, как сделать миграцию существующего сайта в мультисайт WordPress с изменением URL и сохраним при этом все данные и настройки.
Что такое мультисайт WordPress и зачем менять URL
Мультисайт — это сеть сайтов, работающая на одной установке WordPress с единым ядром, плагинами и темами. Каждый сайт сети имеет свой домен или поддомен, но управляется из одной админ-панели.
Изменение URL при миграции в мультисайт необходимо, если вы хотите разделить проекты по поддоменам или поддиректориям, например, с example.com на site1.example.com или example.com/site1. Это позволяет лучше структурировать проекты и оптимизировать управление.
Подготовка к миграции: проверка и резервное копирование
Перед началом миграции обязательно сделайте полное резервное копирование базы данных и файлов сайта. Это защитит от потери данных при ошибках.
Проверьте совместимость плагинов и тем с мультисайтовой сетью, особенно если они работают с URL или кэшированием.
Создание мультисайта в WordPress
Для активации мультисайта нужно сделать несколько шагов:
- Откройте
wp-config.phpи добавьте перед строкой/* That's all, stop editing! Happy blogging. */следующий код:
define('WP_ALLOW_MULTISITE', true);
- Зайдите в админ-панель WordPress, в меню "Инструменты" появится пункт "Сеть".
- Выберите тип мультисайта — поддомены или поддиректории. Для изменения URL чаще используют поддомены, но и поддиректории подходят.
- Следуйте инструкциям для добавления дополнительных строк в
wp-config.phpи.htaccess.
После этого ваша сеть мультисайтов готова к работе.
Миграция существующего сайта в мультисайт с изменением URL
Теперь рассмотрим, как перенести существующий сайт в мультисайт с изменением URL. Предположим, у вас есть сайт example.com и вы хотите создать мультисайт с поддоменом site1.example.com для этого проекта.
Шаг 1: Экспорт данных из существующего сайта
Войдите в админку вашего текущего сайта и перейдите в "Инструменты" → "Экспорт". Выберите экспорт всего контента. Этот файл XML содержит все записи, страницы, комментарии и пользовательские поля.
Шаг 2: Создание нового сайта в сети мультисайтов
В админке мультисайта перейдите в раздел "Мои сайты" → "Сеть администрирования" → "Сайты" → "Добавить новый".
Заполните поля:
- Адрес сайта:
site1(будетsite1.example.com) - Заголовок сайта и email администратора
Шаг 3: Импорт данных на новый сайт
Переключитесь в админку созданного сайта site1.example.com. Далее зайдите в "Инструменты" → "Импорт" и выберите "WordPress". Если плагин импорта не установлен, система предложит установить его.
Загрузите ранее экспортированный XML-файл и выполните импорт. В процессе назначьте записи текущему пользователю, чтобы сохранить права.
Шаг 4: Исправление URL в базе данных
После импорта нужно заменить все старые URL example.com на новые site1.example.com в контенте и метаданных. Для этого используйте плагин Clearfy или выполните поиск и замену через WP-CLI:
wp search-replace 'https://example.com' 'https://site1.example.com' --url=site1.example.com --skip-columns=guid
Опция --skip-columns=guid важна, чтобы не менять GUID записей, что может повлиять на RSS и индексацию.
Исправление ссылок и медиафайлов после миграции
Иногда ссылки на медиафайлы и внутренние ссылки в постах могут указывать на старый URL. Чтобы исправить это, используйте SQL-запросы или плагины.
Пример SQL-запроса для базы данных мультисайта (замените 2 на ID сайта):
UPDATE wp_2_posts SET post_content = REPLACE(post_content, 'https://example.com', 'https://site1.example.com');
UPDATE wp_2_postmeta SET meta_value = REPLACE(meta_value, 'https://example.com', 'https://site1.example.com');
Для удобства и безопасности лучше использовать специализированные инструменты, например, плагин Clearfy, который умеет корректно менять URL в мультисайтовой базе.
Советы по оптимизации мультисайта после миграции
После переноса сайта в мультисайт важно оптимизировать работу:
- Отключите неиспользуемые плагины на уровне сети, чтобы уменьшить нагрузку.
- Настройте кэширование с поддержкой мультисайтового режима (например, WP Rocket, LiteSpeed Cache).
- Проверьте корректность SSL-сертификатов для поддоменов, если используете их.
- Настройте редиректы со старых URL на новые, чтобы сохранить SEO-показатели.
Пример кода для автоматической смены URL в хуках WordPress
Если часть ссылок генерируется динамически, можно использовать фильтр для замены URL на лету. Добавьте в functions.php темы или плагина следующий код:
function wpcode_replace_urls_in_content($content) {
$old_url = 'https://example.com';
$new_url = 'https://site1.example.com';
return str_replace($old_url, $new_url, $content);
}
add_filter('the_content', 'wpcode_replace_urls_in_content');
Этот простой фильтр заменит все вхождения старого URL на новый в выводе контента, что полезно при ограниченном доступе к базе данных.
Заключение по теме мультисайтовой миграции с изменением URL
Миграция существующего сайта в мультисайт с изменением URL — задача, требующая внимательности и правильной последовательности шагов. Используйте экспорт/импорт, корректно меняйте URL и проверяйте работу сайта после переноса. При необходимости применяйте инструменты для массовой замены URL, в том числе WP-CLI и плагины, например, Clearfy. Такой подход обеспечит надежную и удобную работу сети мультисайтов с новыми адресами.