Tutorials

Einige nützliche Hilfen und Code-Schnipsel, die ich immer wieder benötige und deshalb hier für alle sammle.

Zurück zur Übersicht

Urls in der Datenbank ändern für Wordpress Seitenumzüge

#Tutorials#Wordpress

Bei Wordpress steht man als Entwickler immer wieder vor einem großen Problem - nämlich der Live-Schaltung der Seite. Das Problem an der ganzen Sache ist, dass Wordpress jede Url absolut ablegt in verschiedene Felder und Tabellen. So werden alle Bilder, Links etc. hart auf die bei der Installation eingebene Seiten-Adresse gesetzt. Zieht man nun die Seite um und ändert nur die Seitenurl werden die Beiträge, Seite etc nicht neu geschrieben und alle Links stehen noch auf die alten Url. Mit ein paar leichten SQL Queries lässt sich das Ganze aber schnell und einfach lösen.

Vorgehen um eine Seite online zu schalten:

1. Seiten-Url in der Datenbank ändern

Dafür geht ihr am leichtesten mit phpmyadmin, adminer oder wie auch immer ihr Zugriff auf die DB habt auf die Datenbank, geht in die Tabelle wp_options und ändert dort an den Stellen siteurl und home die Url auf eure neue Url. Somit lässt sich das Wordpress Backend wieder öffnen und die Seite sollte im Frontend auch schon wieder kommen, allerdings gehen keine Links, Menüs etc, wie schon gesagt.

2. Urls in der Datenbank überall ersetzen

Nun müsst ihr einfach folgende SQL Befehle ausführen.

Für die Guid(Menüs etc)


UPDATE wp_posts
SET guid =REPLACE(
    guid,
    "olddomain.com/wordpress",
    "www.newdomain.com"
);

Für den Content selbst


UPDATE wp_posts
SET post_content = REPLACE(
    post_content,
    "olddomain.com/wordpress",
    "www.newdomain.com"
);

Für Custom Fields, oder Feldern von Plugins


UPDATE wp_postmeta
SET meta_value = REPLACE(
    meta_value,
    "olddomain.com/wordpress",
    "www.newdomain.com"
);

Danach sollte alles gehen. Aber Achtung manche Plugins erweitern die Datenbank um eigene Tabellen und diese werden gerade davon nicht ersetzt. Falls dem so ist, könnt ihr diese Tabellen wie oben auch umschreiben. Der SQL dafür geht wie folgt:


UPDATE tabellenname
SET feld_das_urls_enthaelt = REPLACE(
    feld_das_urls_enthaelt,
    "olddomain.com/wordpress",
    "www.newdomain.com"
);

Ich hoffe damit bekommt ihr alle eure Seiten von DEV zu Live ;)


Kommentare

  • Stefan
    Kann man nicht auch einfach die URLs vor dem Importieren des Schemas in die neue DB mit der Suchen-und-Ersetzen-Funktion eines Texteditors ändern? Das ginge dann "in einem Rutsch" und man würde alle Tabellen (auch zusätzliche) erwischen.
    Antworten
  • Lars
    Vielen Dank für diesen super hilfreichen Artikel! Das spart jede Menge an Arbeit :)
    Antworten
  • Oldenfelde
    Andre, vielen Dank für den tollen Tipp! Endlich mal eine saubere Erklärung bezüglich des Umzugsproblems mit WordPress.
    Antworten
  • Petra
    Hallo Andreas,
    ich kann leider die Url nicht in der Datenbank ändern, (Wenn ich es per Doppelklick auf das Feld versuche) Hast du einenTipp für mich? Ich arbeite mit mampp und möchte mir eine lokale Sicherungskopie auf meinen Mac ziehen.
    Antworten
  • Joseph
    Hi André, danke für den Code, hat mir geholfen. Finde es persönlich aber schwach, dass es solche Schwierigkeiten bei Wordpress gibt.
    Antworten

Hinterlasse einen Kommentar

Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Kommentar wird gespeichert
Danke für deinen Kommentar! Sobald er freigegeben wurde erscheint er hier.