Basis-Domain einer Multisite-Umgebung ändern

altedomain.tld soll in neuedomain.tld geändert werden. Zunächst die wp-config.php im WordPress-Stammverzeichnis anpassen.

define('DOMAIN_CURRENT_SITE', 'neuedomain.tld');

Dann Veränderungen in der MySQL-Datenbank vornehmen.

  1. In der Tabelle prefix_options ist die altedomain.tld in neuedomain.tld zu ändern in den Zeilen siteurl und home.
  2. In der Tabelle prefix_blogs sind ggf. die Subdomains von subdomain.altedomain.de in subdomain.neuedomain.de, sowie die altedomain.de in neuedomain.tld anzupassen.
  3. In der Tabelle prefix_site ist die Spalte site anzupassen und in der Tabelle prefix_sitemeta der Wert für siteurl.

Anschließend in den Inhalten (Seiten, Beiträge) entweder via Hand in der MySQL-Datenbank oder mit einem Plugin zum Suchen und Ersetzen von Text die URIs (auch zu eingebundenen Medien) verändern.

Datenbank-Präfix von WordPress nachträglich ändern

Zunächst sollte ein Backup der Datenbank und der Datei wp-config.php erstellt werden.

Mit SQL-Befehlen werden nun die einzelnen Tabellen umbenannt. Soll der neue Präfix tp461o2_ sein, dann sieht das so aus:

RENAME TABLE `wp_commentmeta` TO `tp461o2_commentmeta`;
RENAME TABLE `wp_comments` TO `tp461o2_comments`;
RENAME TABLE `wp_links` TO `tp461o2_links`;
RENAME TABLE `wp_options` TO `tp461o2_options`;
RENAME TABLE `wp_postmeta` TO `tp461o2_postmeta`;
RENAME TABLE `wp_posts` TO `tp461o2_posts`;
RENAME TABLE `wp_terms` TO `tp461o2_terms`;
RENAME TABLE `wp_term_relationships` TO `tp461o2_term_relationships`;
RENAME TABLE `wp_term_taxonomy` TO `tp461o2_term_taxonomy`;
RENAME TABLE `wp_usermeta` TO `tp461o2_usermeta`;
RENAME TABLE `wp_users` TO `tp461o2_users`;

Im Anschluss müssen noch alle Werte in den Tabellen options und usermeta aktualisiert werden, die auf den alten Tabellenpräfix verweisen.

UPDATE `tp461o2_options` SET `option_name`=REPLACE(`option_name`,’wp_’,’tp461o2_’) WHERE `option_name` LIKE ‘%wp_%';
UPDATE `tp461o2_usermeta` SET `meta_key`=REPLACE(`meta_key`,’wp_’,’tp461o2_’) WHERE `meta_key` LIKE ‘%wp_%';

Zuletzt wird der Tabellenpräfix in der wp-config.php angepasst und alles sollte rund laufen:

$table_prefix  = 'tp461o2_';

Anzumerken ist noch, dass diese Methode zwar funktioniert, aber Schwierigkeiten auftreten können sobald weitere Tabellen von Plugins angelegt worden sind. Diese müssen dann auch entsprechend umbenannt werden. Am Besten wird der Präfix aber schon bei der Installation von WordPress entsprechend angepasst, so dass diese Änderung später gar nicht mehr nötig wird.

Referenz