Skip to content

Todo para WordPress, el desarrollo web — y mucho más

Sustituir el dominio en la base de datos de WordPress tras migrar el sitio

Generador de scripts para cambiar la dirección del sitio en la base de datos: WP-CLI o SQL puro para phpMyAdmin. Indique el prefijo de las tablas y los dominios antiguo y nuevo: la herramienta hace el resto. Todo se genera en su navegador: las direcciones introducidas no se envían a ningún sitio.

De wp-config.php: $table_prefix. Por defecto wp_
Modo
Formas de escritura de la URL Un mismo dominio se guarda en la base de datos en varias formas. Sustituir solo la primera es la razón principal de que «la mitad de los enlaces siguiera siendo la antigua».
Tablas
Opciones adicionales
Rellene el dominio antiguo y el nuevo para ver el script.

El script se genera en su navegador: los dominios introducidos no se envían a ningún sitio ni se guardan.

Чому «просто REPLACE по всій базі» ламає сайт

WordPress зберігає частину налаштувань у PHP-серіалізованому вигляді, де довжина кожного рядка записана окремим числом: a:1:{s:4:"logo";s:26:"http://old.com/logo.png";} Число 26 — це довжина адреси у байтах. Звичайний REPLACE змінить саму адресу, але не чіпне число. Після цього unserialize() повертає false, і значення читається як порожнє. Найчастіше так втрачаються віджети, налаштування теми (theme_mods), поля ACF та дані Elementor — тобто саме те, що складніше за все відновити. Тому режим «WP-CLI» стоїть за замовчуванням: wp search-replace розпаковує серіалізовані структури і перераховує довжини коректно.

Одна адреса — п’ять різних записів у базі

Друга причина, чому після переносу «половина посилань лишилась старими»: той самий домен лежить у базі в кількох формах одночасно. http://old.com — звичайний вигляд https://old.com — інша схема, якщо сайт переїхав на SSL уже після наповнення //old.com — protocol-relative у старих темах http:\/\/old.com — екрановані слеші всередині JSON: так адреси зберігають блоки Gutenberg і поле _elementor_data http%3A%2F%2Fold.com — urlencoded у redirect-плагінах та кеші oEmbed Інструмент генерує заміну для кожної увімкненої форми окремо, у правильному порядку: protocol-relative йде останнім, бо є підрядком повної адреси.

Часті питання