Skip to content

Alles für WordPress, Webentwicklung — und mehr

Domain in der WordPress-Datenbank nach einem Site-Umzug ersetzen

Generator für Skripte, die die Site-Adresse in der Datenbank ändern: WP-CLI oder reines SQL für phpMyAdmin. Geben Sie Tabellenpräfix sowie alte und neue Domain an — den Rest erledigt das Werkzeug. Alles entsteht in Ihrem Browser: die eingegebenen Adressen werden nirgendwohin gesendet.

Aus wp-config.php: $table_prefix. Standard ist wp_
Modus
Schreibweisen der URL Ein und dieselbe Domain steht in der Datenbank in mehreren Schreibweisen. Nur die erste zu ersetzen ist der Hauptgrund dafür, dass „die Hälfte der Links alt geblieben ist“.
Tabellen
Zusätzlich
Tragen Sie alte und neue Domain ein, um das Skript zu sehen.

Das Skript entsteht in Ihrem Browser — die eingegebenen Domains werden nirgendwohin gesendet und nirgends gespeichert.

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

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