Nach einem Umzug oder einer Kopie müssen die Pfade in der Datenbank angepasst werden.
Letztlich wieder auf eine kleine Problematik gestoßen, die eigentlich recht einfach zu erledigen ist. Nach dem Umzug der Dateien, also der WordPress-Installation in einen anderen Pfad der Grund-URL, musste der Pfad für diese Installation angepasst werden. Das ist eigentlich recht einfach zu lösen, erfordert aber ein paar SQL Kenntnisse. Am besten sollte die PHP-Anwendung „phpMyAdmin“ installiert sein. Viele Hoster haben dies aber als Standard schon irgendwo im Paket mit dabei.
Über diese Anwendung zieht man sich auch für gewöhnlich Datenbank-Backups, spielt sie ein oder kann dort natürlich direkt Änderungen in den Datenbankeinträgen vornehmen. So wäre auch über Masken ein Suchen und Ersetzen für die Einträge möglich. Das ist aber oftmals etwas aufwendiger, als ein paar SQL-Befehle direkt einzugeben.
Wer sich etwas auskennt, kann folgende Befehle kopieren und für seine Pfade anpassen und in phpMyAdmin nutzen. Jedoch Obacht bei solchen Massenänderungen!
Hier ein paar Beispiele.
Selbe Domain, neuer Unterordner mit Kopie:
UPDATE wp_options SET option_value = replace(option_value, 'https://www.deinedomain.tld', 'https://www.deinedomain.tld/unterordner/') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'https://www.deinedomain.tld','https://www.deinedomain.tld/unterordner/');
UPDATE wp_posts SET post_content = replace(post_content, 'https://www.deinedomain.tld', 'https://www.deinedomain.tld/unterordner/');
Bei dem Thema mit den Unterordnern aber aufpassen. Wahrscheinlich wird bei der Tabelle „wp_posts“ kein Slash „/“ benötigt, weil schon vorher eines mit enthalten war. Wenn es doch zu zweien kommt, stört es erst mal nicht beim Seitenaufruf, kann aber vielleicht einen anderen Einfluss haben. Bspw. Suchmaschinen.
Komplett neue Domain:
UPDATE wp_options SET option_value = replace(option_value, 'https://www.deine domain.tld', 'https://www.deine-neue-domian.tld') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'https://www.deine domain.tld','https://www.deine-neue-domian.tld');
UPDATE wp_posts SET post_content = replace(post_content, 'https://www.deine domain.tld', 'https://www.deine-neue-domian.tld');
Die Befehle können zusammen oder Zeile für Zeile eingeben werden. In phpMyAdmin ist auch eine Simulation der Befehle möglich, um zu sehen, was es für Auswirkungen haben wird.
Zur Erklärung, was geändert wird. Die erste Zeile wird in der Tabelle „wp_options“ Änderungen in der Spalte „option_value“ vornehmen, aber nur bei den Einträgen „home“ und „siteurl“ in der Spalte „option_name“. Das entspricht der URL Änderung, die in WordPress unter den Einstellungen -> Allgemein vornimmt. Die Änderung kann aber nur glücken, wenn zusätzlich in der replace-Funktion deine richtigen Pfade angeben werden. Ansonsten kann der gesuchte String, nicht mit dem gewollten String ersetzt werden
Die beiden anderen Zeilen ändern in der tabelle „wp_posts“ alles, wenn die URL-Stringwerte gefunden wurden. Änderungen werden in der Spalte „guid“ und „post_content“ vorgenommen. Ersteres beinhaltet die originalen Beitrags- & Seiten-URLs ohne Umschreibungen für Suchmaschinen usw. Und in post_content wird es sehr spannend. Hier geht es um den Inhalt. Dort können aber auch interne URLs vorkommen, die mit dem neuen Wert ersetzt werden.
Das alles am besten nicht am Produktiv-System vornehmen, wobei es dort wahrscheinlich eher nicht nötig sein wird.