Jan-Philipp Litza

Wordpress-Artikel aus einem bestehenden Blog umziehen 20. Februar 2012

Da ich aus gegebenem Anlass demnächst meine Blogposts aus diesem Blog in ein eigenes Blog ziehen werde (Update: ist geschehen, dies ist das neue Blog), habe ich mich gerade damit beschäftigt, wie man möglichst ohne MySQL-Magie „einzelne“ (aber schon massenweise) Posts aus einem Wordpress-Blog in ein anderes umziehen kann, dabei die alten URLs in Takt lassen (redirecten), aber die Posts im alten Blog verstecken. Das ist gar nicht mal so schwer: Über „Werkzeuge“ → „Daten exportieren“ kann man Artikel eines einzelnen Benutzers (was in meinem Fall ja genau zutrifft) in eine XML-Datei exportieren. Diese kann man dann im neuen Blog mit „Werkzeuge“ → „Daten importieren“ wieder einpflegen – oh Wunder.

Der komplizierte Teil ist das Umleiten der alten URLs: Dazu habe ich mit dem folgenden sed-Aufruf aus dieser XML-Datei eine kleine CSV-Datei erstellt, die die Umleitungen enthält:

OLD_URL="http:\/\/planetcyborg.de\/blogs\/mw\/"
NEW_URL="http:\/\/domain.neu\/mit\/pfad\/"
sed -n "s/^[[:space:]]*<link>${OLD_URL}\(.*\)<\/link>/\1,${NEW_URL}\1,0/p" < export.xml > redirects.csv

Bitte beachten, dass dabei jeder Slash (/) durch einen Backslash () escaped werden muss, da er ansonsten den Regexp beendet. Außerdem muss die alte Adresse den Slash am Ende unbedingt enthalten, da ansonsten auch die Haupt-URL in der CSV landet! Man kann die auch nochmal überprüfen, um sicher zu gehen, dass da kein Müll drinsteht! 😉

Die dadurch entstandene CSV-Datei kann man in das Plugin Redirection importieren (in den „Optionen“ des grausamst übersetzten Plugins) und schon hat man wunderbare Weiterleitungen, die sogar die noch existenten Artikel überschreiben. Die kann man jetzt einfach löschen… und ist fertig! ☺