Update auf WordPress 2.3

Die meisten Plugins ließen sich leicht updaten. Bei einigen blieb aber die alte Versionsnummer stehen. Da musste ich erstmal den Plugin-Ordner entrümpeln und schauen welcher Plugin-Ordner der richtige ist. Bei ein oder zwei ist immer noch eine alter Plugin-Eintrag übrig.

Das Theme geriet aber zur Katastrophe. Ich habe lange gebraucht, bis das Titelbild wirklich ausgetauscht war. Wie man aber im Moment sieht, passt das alte Titelbild nicht mehr in die aktuelle Version vom Theme, es ist zu breit. Die Farben sehen auch wieder anders aus. Wird also noch etwas dauern, bis sich hier alles normalisiert hat.

Sorgen macht mir noch, dass ich im Editor in eingen Seiten Umlaute als ? aufgefunden habe. Seltsamerweise wurden die Umlaute in den betreffenden Seiten weder vor noch nach dem Editieren (und korrigieren der Umlaute) kaputt im Blog angezeigt.

WordPress 2.3.1 Update in Planung

Bisher hatten mich hauptsächlich zwei Sachen vom Update auf die aktuelle WordPress-Version abgehalten:

  • Ich muss meine Änderungen in das neue WordPress-Template übertragen. Leider habe ich mit der Zeit viel am Template gemacht. In diesen sauren Apfel muss ich dann unvermeidlich beissen.
  • Ultimate Tag Warrior ist nicht kompatibel. Für dieses Problem habe ich heute im Blog von Christoph Riesinger eine Lösung gefunden: Problem erkannt, Problem gebannt. Es gibt eine Import-Funktion. 🙂

Das heisst für mich, dass ich mir in den nächsten Tagen Zeit für das Update nehmen werden. Aus diesem Grund kann es sein, das hier das ein oder andere nicht mehr ganz korrekt funktioniert, während ich umstelle. Die Feed-Dateien liegen ja auf einem externen Server, da werde ich die Synchronisierung morgen für die Dauer der Überarbeitung aussetzen. Ich berichte dann, wie es gelaufen ist.

WordPress Admin-Bereich mit SSL absichern

Mit dem Admin-SSL WordPress Plugin kann man ganz bequem den Admin-Bereich eines WordPress-Blogs auf SSL umstellen. Vorher muss man nur den Apache mit SSL zum Laufen gebracht haben. Hier ein paar Zeilen aus der Apache2 Konfiguration:

<virtualhost IP-Adresse:443>
SSLEngine on
SSLCertificateFile /etc/ssl/blog.crt
SSLCertificateKeyFile /etc/ssl/blog.key
SSLCACertificateFile /etc/ssl/blog.ca-bundle
DocumentRoot […]

Weitere Infos zu WordPress plus SSL gibts auf WordPress Codex: Administration Over SSL

MP3- und Video-Dateien einbinden

Wenn jemand MP3- oder Video-Dateien in sein WordPress-Blog einbinden will, wird er auf diesen Seiten fündig:

Mit Hilfe des WP-FLV Plugins aus dem ersten Artikel habe ich das folgende kleine Video eingebunden:

Leider scheint das Plugin aber kein Vorschaubild mit anzuzeigen. Das erwähnte WordTube-Plugin funktioniert mit meiner WordPress-Version leider nicht.

WordPress „Beitrag schreiben“ baut sich langsam auf

Ich habe schon länger das Problem, dass sich die Seite „Beitrag schreiben“ in WordPress extrem langsam aufbaut. Auf dem alten Server dauerte das deutlich über 60 Sekunden. Auf dem neuen Server hier nur noch ca. 20 Sekunden. Heute habe ich mir mal Zeit genommen um zu untersuchen warum das so ist. Ich habe mir das Tool mytop installliert und ausgeführt. Beim Aufruf der Seite erschien für ca. 20 Sekunden die folgende SQL-Query:

mysql&gt; SELECT meta_key FROM wp_postmeta GROUP BY meta_key ORDER BY meta_id DESC LIMIT 10;

Als erste Maßnahme habe ich mal den MySQL Query-Cache in der my.cnf hochgeschaltet, da mein Webserver 2 GB RAM hat und davon noch nicht alles genutzt wird:

#
# * Query Cache Configuration
#
query_cache_limit       = 1M
query_cache_size        = 128M

Das brachte dann den Effekt, dass innerhalb eines relativ kurzen Zeitraums die Abfrage sehr schnell ablief. Nach ein paar Minuten (wenn überhaupt) war der Geschwindigkeitsgewinn aber wieder weg.

Also habe ich mal geschaut, was die SQL-Abfrage überhaupt macht:

mysql&gt; SELECT meta_key FROM wp_postmeta GROUP BY meta_key ORDER BY meta_id DESC LIMIT 10;

+----------------------+
| meta_key             |
+----------------------+
| podPressPostSpecific |
| _wp_page_template    |
| _utw_tags_0          |
| _utw_tags_           |
| related_id           |
| podPressMedia        |
+----------------------+
6 rows in set (25.67 sec)


mysql&gt; SELECT meta_key FROM wp_postmeta GROUP BY meta_key ORDER BY meta_id DESC LIMIT 10;

+----------------------+
| meta_key             |
+----------------------+
| podPressPostSpecific |
| _wp_page_template    |
| _utw_tags_0          |
| _utw_tags_           |
| related_id           |
| podPressMedia        |
+----------------------+
6 rows in set (0.00 sec)

Die Query erzeugt also unter „Ein neues benutzerdefiniertes Feld hinzufügen“ eine Liste mit 10 Werten für den setzbaren Schlüssel. Ein Feature das ich bisher nie benutzt habe. Also habe ich mich auf die Suche nach der Query gemacht. Ich wurde in wp-admin/admin-functions.php in der Funktion meta_form() fündig. Also schnell das folgende auskommentiert und mit 0,8 Sekunden Seiteladezeit (als über 20 Mal schneller :-)) glücklich werden:

/*      $keys = $wpdb->get_col("
                        SELECT meta_key
                        FROM $wpdb->postmeta
                        GROUP BY meta_key
                        ORDER BY meta_id DESC
                        LIMIT 10");*/

Zeichensatzprobleme beim Einbinden von WordPress-Feeds mit MagpieRSS in PHP beheben

Ich binde meine Blog-Feeds auf der ein oder anderen Webseiten ein. Dazu nutze ich in der Regel PHP und MagpieRSS. Ich hatte dabei aber immer mal wieder Probleme mit den Zeichensätzen. Die Umlaute waren meistens kein Problem, wenn ich den Zeichensatz der Webseite mit PHP auf UTF-8 geändert habe. Das hilft allerdings nicht bei Sonderzeichen im RSS-Feed, wie z.B. Gedankenstriche oder deutsche Anführungszeichen.

Die Lösung ist hier MagpieRSS den Zeichensatz mitzuteilen, der im PHP-Skript für die HTML-Ausgabe gesetzt wird:

&lt;?
header("Content-Type: text/html; charset=utf-8");
define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');
?&gt;