Probleme mit Themes und Multisite-WordPress

Nachdem ich in einer Multisite-Wordpress Installation das Theme gewechselt hatte, zeigte die entsprechende Seite sowohl im Front- als auch im Backend nur noch eine weiße Seite an. In den PHP Logmeldungen waren auch keine Probleme zu erkennen. Andere Seiten der Installation funktionierten weiterhin ohne Probleme.

Das alte Theme wurde entfernt

Das alte Theme wurde entfernt

Bei einer Multisite-Installation deutet dies meist auf ein Problem mit dem verwendeten Theme hin. Zur Lösung sollte das aktivierte Theme über die Netzwerkverwaltung deinstalliert werden. Anschließend kann man sich wieder in das Backend der Seite einloggen und dort auf ein anderes Theme wechseln.

WordPress-Blog auf ein Multisite-WordPress umziehen

Möchte man einen dezidierten WordPress-Blog auf eine Multisite-Installation umziehen, so geht dies mittels der Boardmittel erstaunlich gut. Im ersten Schritt müssen dazu im Backend, unter „Werkzeuge -> Daten exportieren“ der gesamte Inhalt in eine XML Datei exportiert werden.

Der WordPress Importer

Der WordPress Importer

In der Multisite-Installation muss der WordPress Importer installiert sein. Danach kann die XML Datei über „Werkzeuge -> Daten importieren“ wieder eingespielt werden. Anschließend ist noch etwas Nacharbeit nötig. So sollten die Standardbeiträge und Seiten entfernt werden. Auch Einstellungen von Fremdplugins und des Themes werden nicht übernommen. Wer also z.B. eine Galerie betreibt muss diese von Hand umziehen.

Multisite-WordPress für mehrere Domains einrichten

Seit der 3.0er Version von WordPress steckt in jedem WordPress die Möglichkeit aus dem normalen WordPress ein sogenanntes Multisite-Wordpress zu machen. Wenn man sich die aktuelle WordPress-Version auf den Webspace kopiert hat, wird diese ganz normal installiert. Nach der Installation wird der „wp-config.php“ folgende Zeile hinzugefügt:

define('WP_ALLOW_MULTISITE', true);

Durch das Hinzufügen der entsprechenden Optionen findet man in den Einstellungen unter Werkzeuge den Punkt Netzwerk-Einrichtung. Dort kann man die vorgegebenen Einstellungen so belassen und den Installationsbutton nutzen.

Die Netzwerk-Einrichtung unter WordPress

Die Netzwerk-Einrichtung unter WordPress

Nach der Installation kann das Multiuser-Wordpress theoretisch schon genutzt werden. Allerdings gilt das nur für den Fall das alle Blogs auf der gleichen Domain laufen. Für eine Installation welche mehrere Domains bedient, muss das „WordPress MU Domain Mapping“ Plugin genutzt werden.

Im ersten Schritt kann das Plugin wie gehabt über die WordPress Pluginverwaltung installiert werden. Allerdings beinhaltet die Installation dieses Plugins einen manuellen Teil. Die Datei „sunrise.php“ aus dem Plugin muss in den Ordner „wp-content“ kopiert werden. Bei einer Aktualisierung des Plugins muss dieser Schritt wiederholt werden. Nun muss die „wp-config.php“ angepasst werden. Dieser wird dabei:

define( 'SUNRISE', 'on' );

hinzugefügt. Nachdem man sich aus dem Multisite-Wordpress ein- und ausgeloggt hat, kann das Plugin genutzt werden. In den Optionen sollte man unter „Domain Mapping“ nur den Punkt „Permanent redirect (better for your blogger’s pagerank)“ aktivieren. Alle anderen Optionen können deaktiviert werden.

In der Netzwerkverwaltung wird eine neue Seite z.B. „example.org/seeseekey“ angelegt. Unter „Einstellungen -> Domains“ wird diese neue Seite mit der ID (2, 3, 4 und weiter aufsteigend) und der Domain hinzugefügt. Anschließend kann die Seite über die Domain aufgerufen und genutzt werden.

Serendipity zu WordPress umziehen

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

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.

Mails per SMTP unter WordPress versenden

Unter Umständen kann es vorkommen, das man sein WordPress auf einem Server betreibt, welcher keine PHP „mail()“ Funktion unterstützt. In diesem Fall sollten die Mails per SMTP versendet werden. Möglich wird dies mit dem Plugin „Easy WP SMTP„. Damit werden die Mails nicht mehr über die PHP-Funktion, sondern über einen SMTP Account versendet.

Die Einstellungen des Plugins Easy WP SMTP

Die Einstellungen des Plugins Easy WP SMTP

Bei der Konfiguration des Plugins werden SSL und TLS unterstützt, so das hier die Zugangsdaten nicht im Klartext durch das Netz gesendet werden.