Vai al contenuto
Sostituire il dominio nel database WordPress dopo la migrazione del sito

Sostituire il dominio nel database WordPress dopo la migrazione del sito

Generatore di script per cambiare l'indirizzo del sito nel database: WP-CLI oppure SQL puro per phpMyAdmin. Indica il prefisso delle tabelle, il vecchio e il nuovo dominio: al resto pensa lo strumento. Tutto viene creato nel tuo browser: gli indirizzi inseriti non vengono inviati da nessuna parte.

Da wp-config.php: $table_prefix. Predefinito wp_
Modalità
Forme di scrittura dell'URL Uno stesso dominio è memorizzato nel database in più forme. Sostituire solo la prima è il motivo principale per cui «metà dei link è rimasta vecchia».
Tabelle
Opzioni aggiuntive
Inserisci il vecchio e il nuovo dominio per vedere lo script.

Lo script viene creato nel tuo browser: i domini inseriti non vengono inviati da nessuna parte né memorizzati.

Чому «просто 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 йде останнім, бо є підрядком повної адреси.

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