wordpress

Domain- oder Verzeichniswechsel mit WordPress: Alle Bildpfade in der Datenbank ändern

Es ist ja jetzt schon ein bisschen her, dass ich dieses Blog hier auf einen neuen Server verfrachtet habe. Ging alles größtenteils gut aber das ein oder andere Problem gibt es ja dann doch immer. Einen Tipp den ich in füheren Zeiten bereits schon häufiger gebraucht habe und der mir auch dieses Mal wieder sehr hilfreich war, möchte ich euch heute vorstellen.

Es geht darum, wie man die URLs der in den WordPress-Artikeln eingebundenen Bildern im Falle eines Domain- oder Verzeichniswechsels auf einen Schlag alle ändert. Wenn ihr das Verzeichnis eurer WordPress-Installaton oder gar die ganze Domain wechselt und dabei eure alte Datenbank “mitnehmt” verweisen die eingebunden Bilder im Zweifelsfall noch auf die alte Domain / das alte Verzeichnis, was dann dafür sorgt, dass alle eure eingebunden Bilder nicht mehr angezeigt werden.

Um nicht in jedem Artikel die URLs zu den Bildern manuell tauschen zu müssen, gibt es einen einfachen Trick mit dem man die Bildpfade ganz einfach in der Datenbank verändern kann. Die Artikel liegen bei WordPress ja bekanntlich in der Datenbank, genauer in der Tabelle “wp_posts”. Im Webfrontend der Datenbank kann man diese auch bearbeiten, bei den meisten dürfte das wohl phpMyAdmin sein, so auch bei mir. Mit Alternativen habe ich da keine Erfahrung, sollte theoretisch aber auch funktionieren.

Wo wir schon bei “keine Erfahrung” sind: Macht in jedem Fall (auch wenn ihr Erfahrung habt / meint Erfahrung zu haben) unbedingt eine Sicherung eurer Datenbank bevor ihr mit phpMyAdmin an ihr herumspielt. Vorsicht ist bekanntlich die Mutter der Porzellankiste, falsche Anfragen zerstören unter Umständen eure komplette Datenbank.

Ihr müsst also alle Bildpfade in der Tabelle “wp_posts” ändern. Das macht ihr mithilfe eines kurzen MySQL-Befehls, den ihr in das Abfragefenster eingebt:

  1. Stellt zunächst sicher, dass ihr die Datenbanktabelle bereits ausgewählt habt. Wenn alle WordPress-Tabellen, darunter auch “wp_posts” links aufgelistet werden, seid ihr richtig. Seht ihr die Tabellen nicht, werden euch im Normalfall links eure vorhandenen Datenbanken angezeigt, wenn ihr dort die entsprechende Datenbank auswählt kommt ihr auch zu den Tabellen.
  2. Werden euch sowohl links als auch in der Mitte eure Tabellan aufgelistet, könnt ihr den Tab “Abfrage” am oberen Bildschirmrand auswählen.
  3. Im Tab der sich euch dann zeigt bekommt ihr (je nach phpMyAdmin-Version) eine Menge Formularfelder präsentiert über die ihr bestimmt auch die Bildpfade ändern könntet, am einfachsten geht es aber mit dem einfachen Textefeld, das ihr rechts unten präsentiert bekommt.
  4. In dieses Feld gebt ihr dann den folgenden Befehl, wohlgemerkt mit den für euch zutreffenden URLs, ein und führt diesen aus:
    UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://www.eureurl.de/altesverzeichnis/wp-content/uploads/', 'http://www.eureurl.de/neuesverzeichnis/wp-content/uploads/');

    Hier wurde jetzt einfach der Verzeichnisname in dem die Bilddateien liegen von “altesverzeichnis” zu “neuesverzeichnis” geändert, klappt natürlich auch mit der kompletten URL. Hauptsache ihr gebt den kompletten Pfad zu den Bilddateien (also mit “wp-content/uploads”) an un überprüft penibel auf Rechtschreibfehler.

  5. Die in euren Artikeln verlinkten Bilder sollten nun wieder angezeigt werden, wenn ihr Ihren korrekten Pfad im SQL-Befehlsfenster angegeben habt.

Das wars dann auch schon, ich habe das ganze jetzt mal etwas ausführlicher beschrieben damit im Bedarfsfall dann auch alles klappt. Garantieren kann aber auch ich für nix, also seid vorsichtig mit eurer Datenbank!

Mir hat dieses Tipp auf jeden Fall schon viel Arbeit erspart weshalb ich ihn jetzt einfach mal an euch weitergeben wollte. Wenn ihr wollt könnt auch ihr gerne mal eure ultimativen WordPress-Tipps ausplaudern, egal ob jetzt beim Umzug/Veränderung einer kompletten Installation oder im “laufenden Betrieb”.

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.


Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>