<- Все статьи
Миграция WordPress
Почему search-replace безопасен для сериализации
Как изменить URL сайта WordPress, не повреждая сериализованные данные.
Проблема
WordPress хранит множество опций в виде сериализованных данных PHP. Этот формат кодирует длину каждой строки. Если вы замените один URL на другой с другой длиной с помощью простого поиска/замены SQL, заявленная длина больше не будет соответствовать, и WordPress не сможет прочитать данные.
Конкретный пример
Сериализованная опция siteurl. s:25 указывает на строку из 25 символов.
a:1:{s:7:"siteurl";s:25:"https://ancien-domaine.com";}
Наивная замена (неверная длина, данные повреждены) :
a:1:{s:7:"siteurl";s:25:"https://nouveau-domaine.com";}
Безопасная для сериализации (пересчитанная длина) :
a:1:{s:7:"siteurl";s:26:"https://nouveau-domaine.com";}
Как работает инструмент
- Он десериализует значение, если оно сериализовано.
- Он рекурсивно проходит по массивам, объектам и вложенным строкам.
- Он заменяет старую строку на новую.
- Он ресериализует: PHP автоматически пересчитывает длины.
Результат: можно изменить домен с разной длиной, не ломая виджет, меню или настройку Elementor.
Перенесите WordPress без головной боли
WP Migrate Toolkit переносит файлы + базу по FTP, без SSH.
Скачать CLI Скачать плагин