Möchte man einen Serendipity Blog zu einem WordPress umziehen, muss man leider etwas Handarbeit in diesen Vorgang stecken. Die Ausgangssitutation besteht dabei aus einem frisch installierten WordPress, sowie dem Serendipity. In der WordPress-Datenbank werden im ersten Schritt einige Modifikationen vorgenommen:
TRUNCATE wp_posts;
TRUNCATE `wp_postmeta`;
TRUNCATE `wp_term_relationships`;
TRUNCATE `wp_term_taxonomy`;
TRUNCATE `wp_comments`;
TRUNCATE `wp_commentmeta`;
DELETE FROM wp_terms WHERE wp_terms.term_id!=1;
Anschließend wird der Serendipity Importer für WordPress benötigt:
git clone https://github.com/ShakataGaNai/s9y-to-wp
In diesem gibt es eine Datei namens „serendipity.php“ welche in den „wp-content/plugins/serendipity/“ Ordner kopiert wird. Nach der Aktivierung des Plugins findet man im WordPress-Backend unter „Werkzeuge > Daten importieren“ einen Serendipity Importer.
Der Serendipity Import
In den Importer werden die Verbindungsdaten der Serendipity-Datenbank eingetragen. Beim Prefix sollte bei einer Serendipity-Standardinstallation „serendipity_“ stehen. Nun kann der Import für die einzelnen Teile der Datenbank gestartet werden. Die WordPress-Datenbank benötigt im Nachgang einige Aktualisierungen:
UPDATE `wp_comments` as a SET a.`comment_post_ID`= (SELECT b.`menu_order` FROM `wp_posts` as b WHERE a.`comment_post_ID`= b.`ID`);
UPDATE `wp_term_relationships` SET `object_id`=`object_id`+9000;
UPDATE `wp_term_relationships` as a SET a.`object_id`= (SELECT b.`menu_order` FROM `wp_posts` as b WHERE a.`object_id`-9000= b.`ID`);
UPDATE `wp_posts` SET `ID`=`ID`+9000;
Die folgenden Zeilen müssen nacheinander ausgeführt werden, da sie jeweils manuell angepasst werden:
UPDATE `wp_posts` SET `ID`=`menu_order`, `guid`=CONCAT("http://example.org/?p=",`menu_order`), `menu_order`=null; -- Replace MYURL.COM with your URL
SELECT `id`+1 FROM `wp_posts` ORDER BY `id` DESC LIMIT 0,1;
ALTER TABLE `wp_posts` AUTO_INCREMENT = XXX;
Der Wert „XXX“ entspricht dabei dem Ergebnis der Abfrage (SELECT). Damit sind die Daten im WordPress gelandet und können nun nachbearbeitet (Bilder & Dateipfade) werden.