Warum leitet wp-admin beim Verschieben einer WP-Site zur alten Site um?

16

Ich bin dabei, eine WP-Site von einem Host auf einen anderen zu verschieben. Ich habe die Datenbank und alle Dateien kopiert, eine neue Datenbank erstellt und die alte importiert. Ich habe dann die wp-config Datei geändert. Die Homepage zeigt gut, aber wenn ich versuche, auf / wp-admin zuzugreifen, kehre ich zur alten Seite zurück.

Die neue Site ist ein Entwickler-Server, auf dem ich Stiländerungen vornehmen möchte, bevor ich die Site lebe.

Was vermisse ich an diesem Übergang? Wie bringe ich die Site dazu, richtig auf die Entwickler-URL zu reagieren?

fmz
quelle

Antworten:

22

Wenn dies eine einzelne WordPress-Installation ist, gibt es einige Datenbankeinträge mit Ihrer alten Domain. Insbesondere siteurlund homeinnerhalb wp_options.

Wenn die Dev-URL jedoch temporär ist, können Sie auch die folgenden zwei Konstanten in festlegen wp-config.php:

define('WP_HOME', 'http://' . $_SERVER['SERVER_NAME']);
define('WP_SITEURL', WP_HOME . '/');

Vorausgesetzt, dass WordPress im Stammverzeichnis Ihrer Website installiert ist.

NightHawk
quelle
Sie müssten auch die guidfür jeden wp_postsAnhang mit etwas wieUPDATE wp_posts SET guid = REPLACE('<old_url>','<new_url>', guid)
Cyclonecode
2
Die GUID sollte nicht geändert werden. Lesen Sie hier mehr: codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note
NightHawk
4

Das ist kein großes Problem. Ihre Datenbank enthält alle vorherigen Links, die nicht automatisch konvertiert werden können. Dafür gibt es zwei Arten von Lösungen:

  1. In wp-config.phpfügen Sie diesen Code:

    define ('WP_HOME', 'http: //'. $ _SERVER ['SERVER_NAME']);
    define ('WP_SITEURL', WP_HOME. '/');
  2. Ändern Sie die folgende SQL, indem Sie "oldurl" durch den vorherigen Link und "newurl" durch den aktuellen Link ersetzen:

UPDATE wp_posts SET guid = replace(guid, 'oldurl','newUrl'); 

UPDATE wp_posts SET post_content = replace(post_content, 'oldurl', 'newUrl'); 

UPDATE wp_links SET link_url = replace(link_url, 'oldurl', 'newUrl'); 

UPDATE wp_links SET link_image = replace(link_image, 'oldurl', 'newUrl'); 

UPDATE wp_postmeta SET meta_value = replace(meta_value, 'oldurl', 'newUrl'); 

UPDATE wp_usermeta SET meta_value = replace(meta_value, 'oldurl', 'newUrl'); 

UPDATE wp_options SET option_value = replace(option_value, 'oldurl', 'newUrl') WHERE option_name = 'home' OR option_name = 'siteurl';

Führen Sie diese SQL-Abfragen in Ihrer Datenbank aus und ändern Sie das Präfix, wenn Sie etwas anderes als haben wp_.

Aakash Bhagat
quelle
2

Wenn Sie nur die Site-URL in der Konfiguration ändern, werden wahrscheinlich nicht alle Interna aktualisiert, um eine funktionierende Entwickler-Site für Sie zu erstellen (es sei denn, die Site ist ziemlich einfach). Es treten Probleme mit nicht angezeigten serialisierten Daten und Links in Beiträgen auf, die auf die alte Site verweisen.

Es wäre sinnvoller, ein Migrationstool wie Backup Buddy oder Duplicator zu verwenden, um eine vollständige Kopie der Site zu erstellen, die an einem neuen Speicherort mit einer neuen URL erneut bereitgestellt werden kann. Auf diese Weise verfügen Sie weiterhin über funktionierende Links in Posts, benutzerdefinierte Menü-Links usw. Wenn Sie einen dieser Links verwenden, wird das Starten Ihrer Änderungen ebenfalls vereinfacht. Packen Sie einfach alles zusammen und stellen Sie es erneut an Ihrem Produktionsstandort bereit, wenn Sie fertig sind.

Wenn Sie nicht die ganze Zeit damit verbringen möchten, alles erneut herunterzuladen / hochzuladen, können Sie die Datenbank einfach mit etwas wie WP Migrate DB migrieren. Installieren Sie es auf Ihrem Produktionsstandort, exportieren Sie eine Datenbank mit der neuen URL und importieren Sie die migrierte Datenbank über phpMyAdmin oder ähnliches auf Ihren Entwickler. Alle hartcodierten Links in Ihrem Design müssen weiterhin aktualisiert werden und Ihr .htaccess muss aktualisiert werden, wenn Sie in einem Unterordner installieren.

Ändern Sie die Zeile RewriteBase in:

RewriteBase /yourfolder/

Und die Zeile, die zu Ihrer index.php umleitet, um:

RewriteRule . /yourfolder/index.php [L]
Sean Michaud
quelle
0

Sie müssen die Site-Adresse (URL) und die WordPress-Adresse (URI) über das Admin-Panel ändern, bevor Sie die Site auf eine andere URL verschieben können.

In Ihrem Fall können Sie das nicht mit einer Live-Site machen, also können Sie ein Tool wie " Datenbanken suchen und ersetzen" ausprobieren , um die URL aus der Datenbank der Entwickler-Site zu ändern.

Sie können auch auf Moving WordPress verweisen

Laxmana
quelle
0
  1. phpMyAdmin: gehe zu wp_optionstable set homeurlund siteurlals deine neue url
  2. Melden Sie wp-adminsich bei setting->general Ihrem Dashboard an, um die WordPress-Adresse (URL) und die Site-Adresse (URL) zu ändern.
user8724101
quelle