Joomla! nach WordPress migrieren

2. Juni 2012 · Anwendungen · andreas · 2 Kommentare

Statt eine Joomla!-Installation von der Version 1.5 auf die Version 2.5 zu migrieren kann es für kleine Websites auch eine Überlegung wert sein, eine Migration auf WordPress durchzuführen.

Wordpress ist zwar eigentlich als Blog-System gedacht, lässt sich aber ohne große Umstände als CMS “missbrauchen”.

Joomla!-Installation sichern und bereinigen

Zur Vorbereitung der Migration ist es sinnvoll, die bestehenden Joomla!-Installation zu bereinigen und eventuell vorhandene Karteileichen zu entfernen.

Selbstverständlich sollte vor der Bereinigung eine Komplett-Sicherung (Dateisystem und Datenbank) der Joomla!-Installation erfolgen um für den Fall der Fälle gerüstet zu sein.

WordPress installieren

Als nächster Schritt wird eine aktuelle WordPress-Version von der offiziellen WordPress-Seite heruntergeladen und installiert.

Nach der Installation, welche mit Standardparametern erfolgen kann, sollte auf keinen Fall vergessen werden, über den WordPress.org secret-key service einen Satz individueller Sicherheitsschlüssel zu generieren und in die Datei “wp-config” einzutragen.

Nach erfolgreichem Login in den WordPress-Admin-Bereich sollte dort als erstes aufgeräumt und die Beispieldaten unter “Artikel”, “Seiten” sowie “Links” und “Plugins” in den Papierkorb verschoben bzw. gelöscht werden.

Da auch die Möglichkeit, Kommentare abzugeben nicht gebraucht wird, kann diese unter “Einstellungen” / “Diskussion” abgeschaltet werden - hier sind die beiden Punkte “Erlaube Link-Benachrichtigungen von anderen Weblogs (Pingbacks und Trackbacks)” und “Erlaube Besuchern neue Artikel zu kommentieren” zu deaktivieren.

Ebenfalls sinnvoll für die Migration ist unter “Einstellungen” / “Mediathek” den standardmäßig gesetzten Haken bei “Organisiere meine Uploads in monats- und jahresbasierten Ordnern” zu entfernen.

Übernahme der Daten

Für die Übernahme der Daten findet sich im WordPress Plugin Directory mit dem Plugin Joomla/Mambo To WordPress Migrator genau das richtige Werkzeug: das Plugin generiert aus den vorhandenen Joomla!-Beiträgen statische WordPress-Seiten.

Nach Herunterladen, Installatieren und Aktivieren des Plugins befindet sich unterhalb der Einstellungen ein neues Menü mit dem Namen “Joomla2WP”, über das der Migrationsprozess durchgeführt werden kann.

Als erstes sind unter “Settings” die zwingend erforderlichen Parameter für den Quell-CMS-Typ sowie die Datenbank(en) anzugeben sowie unter “Migration Options” die zu migriernden Daten genauer zu spezifizieren, bevor die Migration durch Klick auf “Migration” dann gestartet werden kann.

Da das Thema (Template) in einem späteren Schritt noch angepasst wird, sollte der Parameter “WP Images folder” vom ursprünglich eingestellten Unterpfad des Default-Themas auf einen generischen Wert wie z.B. “/wp-content/uploads” geändert werden.

Bevor die eigentliche Datenmigration durchgeführt werden kann, sind die unter “images/stories” vorhandenen Bilder in den oben angebenen Pfad zu kopieren, damit bei der Migration der MIME-Type der jeweiligen Datei korrekt ermittelt werden kann. Hierzu erfolgt nach Klick auf “Start Migration to WP” eine explizite Aufforderung bevor die eigentliche Migration nach Klick auf “Continue” durchgeführt wird.

Nach der Ausgabe von “Migration done " sollten nach einem Klick auf “Seiten” / “Alle Seiten” die in Joomla! vorhandenen Beiträge vollzählig zu sehen sein und das Joomla/Mambo To WordPress Migrator-Plugin kann wieder deaktiviert und deinstalliert werden.

Leider werden die Einstellungen zur Abschaltung der Kommentarfunktion bei der Migration nicht berücksichtigt, so daß hier jede Seite von Hand angepackt werden muß. Sofern die entsprechende Einstellung nach Öffnen der Seite nicht zu sehen ist, muß zuerst in der oberen Menüleiste “Optionen einblenden” ein Haken vor “Diskussion” gesetzt werden, damit das Optionenfeld eingeblendet wird. Hier sind - analog zur globalen Einstellung - die Haken bei “Kommentare erlauben.” sowie “Erlaube Trackbacks und Pingbacks auf dieser Seite.” für jede Seite einzeln zu löschen.

Optional kann dieser Schritt auf über ein SQL-Statement durchgeführt werden - ein

UPDATE wp_posts SET comment_status='closed', ping_status='closed';

erledigt die Einstellung für alle Seiten in einem Schritt.

Anpassen des Themes

Statt aufwendig zu versuchen, den Quellcode des Joomla!-Templates in ein WordPress-Theme zu wandeln, kann es einfacher sein, eine reale Seite der Joomla!-Installation abzuspeichern und anzupassen.

Hierzu wird unter “wp-content/themes” ein neuer Unterordner erstellt und die Seite nebst zugehöriger Dateien in diesen gespeichert.

Als erstes sollte die Seite selbst in “index.php” umbenannt und das Stylesheet unter dem Namen “style.css” im gleichen Ordner abgelegt werden, bevor ein WordPress-kompatibler Header mit folgenden Minimal-Informationen in der Stylesheet-Datei ergänzt wird:

/*
 Theme Name:
 Theme URI:
 Description:
 Author:
 Version:
*/

Dann kann es ans Anpassen der “index.php” gehen.

Nach dem Enfernen eventuell vorhandenener Joomla!-Kommentare muß der Pfad zum soeben verschobenen und umbenannten Stylesheet korrigiert sowie einige der Header-Informationen angepasst werden

<title><?php bloginfo('name'); ?><?php wp_title(); ?></title>
 <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
 <meta name="description" content="<?php bloginfo('description'); ?>" />
 <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
 <?php wp_head(); ?>

Als letztes wird ein Aufruf von “wp_head()” eingefügt, so daß sich eventuell zu einem späteren Zeitpunkt installierte Plugins mit ihren Aufrufen noch einklinken können.

Das noch statisch vorhandene Menü wird durch

<?php wp_list_pages('title_li=&amp;sort_column=menu_order'); ?>

ersetzt, wobei weitere optionale Parameter der Funktionsreferenz des WordPress codex entnommen werden können. Die Reihenfolge der Darstellung kann über das Attribut “Reihenfolge” der jeweiligen Seite festgelegt werden.

Zur Darstellung des Content muß als nächstes der auf der gespeicherten Seite vorhandene Inhalt gelöscht und durch eine Minimalversion des WordPress-Loops ersetzt werden.

<?php
 while (have_posts()) : the_post();
 the_title('<h1>', '</h1>');
 the_content();
 endwhile;
?>

Anschließend sollte die Seite prinzipiell schon wieder erreich- und benutzbar sein.

Nacharbeiten

Die Migration ist allerdings noch nicht abgeschlossen, denn es steht noch einiges an Nacharbeiten an:

Als erstes sollte im Backend unter “Einstellungen” / “Lesen” die Auswahl von “Deine letzten Artikel” auf “Eine statische Seite” geändert und eine entsprechende Startseite gewählt werden. Auch unter “Einstellungen” / “Permalinks” sollte eine sinnvolle Einstellung gewählt werden wie z.B. der Artikelname.

Auch müssen die verschiedenen Stile des Stylesheets noch an Wordpress angepasst werden. Während Joomla! z.B. den aktiven Menüpunkt mittels der Klasse “current” kennzeichnet, wird dies von Wordpress durch Zuweisen der Klasse “current_page_item” erledigt.