Am morgigen Dienstag ist semi-offizieller Erscheinungstermin von WordPress 1.5. Matt Mullenweg, “H├Ąuptling” von WordPress l├Ądt zu einem launigen Umtrunk in San Francisco ein.

Der Schritt d├╝rfte f├╝r einige nicht sonderlich weltbewegend sein, da geneigte Blogger sich jederzeit aktuelle Alpha- und Beta-Versionen der Software in Form der “Nightlies” runterladen konnten. Ich selber habe zwei Installationen von WP 1.5 am Laufen, blogbar.de l├Ąuft z.B. auf einer fr├╝hen WP 1.5-Version.

WordPress?

WordPress d├╝rfte die wohl derzeit mit Abstand popul├Ąrste Open-Source-Blog-Software sein. In 2004 explodierte die Nutzung von WordPress, dank gelungenem Timing. WordPress 1.2 erschien im Fr├╝hjahr 2004 just zu einem Zeitpunkt als der Blog-Software-Champion MovableType binnen kurzer Zeit in PR-Problemen durch eine ver├Ąnderten Lizenzpolitik und einem nicht die Erwartungen erf├╝llenden Upgrade fiel. WordPress bekam Aufmerksamkeit und Blogger.

Nun sind neun Monate seit dem letzten Release vergangen, l├Ąnger als gedacht, nicht zuletzt weil man immer wieder etwas fand, was noch eingebaut werden sollte und es sich mitunter zeigte, dass auch am Fundament der Software gearbeitet werden musste. Zwischenzeitlich hob man daher die angepeilte Versionsnummer von 1.3 auf 1.5 hoch.

Zielgruppe?

Trotz einiger Umstellungen die dem Laien zugute kommen (Themes!), bleibt WordPress, wie jede(?) andere Blog-Software, zu schwer um von kompletten Internet-Laien installiert zu werden.

Als Mindestvoraussetzung f├╝r die Installation w├╝rde ich veranschlagen: Wissen wie man auf seinem Server raufkommt (per FTP) und Wissen wie man Dateien auf dem Server ver├Ąndern kann. Das reicht dann um zumindest mit vorgefertigten Layouts (“Themes”) ein Blog einzurichten.

Wer selbst Hand an die Layouts legen will, kommt nicht um HTML-, CSS- und PHP-Kenntnisse drumherum.

Where ist the beef?

So wie jeder um sein eigenes Blog herum Wert auf bestimmten Schnickschnack legt, wird jeder andere Features von WordPress f├╝r unverzichtbar halten.

Hier meine Favoriten.

Themes
Laienhaft ausgedr├╝ckt: bislang waren die Seitenvorlagen f├╝r ein Blog ganz nach eigenem Gusto quer durch die Website verteilt. Mit den “Themes” wird nun f├╝r Seitenvorlagen und damit f├╝r das Layout eines Blog ein zentraler Ort verwendet. Vorteil: an diesem Ort k├Ânnen einfach in weitere Verzeichnisse andere Layouts abgelegt werden und diese auf der Admin-Oberfl├Ąche von WordPress per Klapp-Men├╝ aktiviert werden. Mit einem Schlag ver├Ąndert sich das Aussehen des gesamten Blogs.

Laien bitte ich nun die folgenden Abs├Ątze zu ignorieren und sich etwas weiter unten gedanklich wieder einzuklinken.

Die zentralisierte Struktur der Themes unter dem User-Verzeichnis wp-content/themes bietet einen noch gr├Â├čeren Vorteil. Fr├╝her waren recht b├Âse Klimmz├╝ge n├Âtig um je nach Inhalt unterschiedliche Templates zu servieren: f├╝r die Homepage das Template x, f├╝r einzelne Eintrag das Template y und d├╝e die Kategorie-├ťbersicht Template z etc…

Dies ist nun Vergangenheit. Alle Templates sind im Themes-Ordner und in der index.php des Home-Verzeichnis steht nur noch ein Aufruf von wp-blog-header.php. Hier wird der Query-String ausgewertet, WordPress erkennt was f├╝r eine Sorte Inhalt angesagt ist ? einzelner Eintrag, Archiv etc… ? und serviert nun das entsprechende Template aus dem aktuellen Theme-Ordner, das die weitere Verarbeitung ├╝bernimmt.

WordPress selber hat also jetzt die Logik ├╝bernommen, in Archiv, Eintrag- oder Index-Templates zu verzweigen, Basteleien mit PHP-Abfragen oder .htaccess entfallen. Wenn wg. akuter Blogger-Faulheit die entsprechenden Templates nicht existieren, wird das Index-Template genommen.

Folgende Templates k├Ânnen angesprochen werden: Error-404, Suchergebnisse, Homepage/Index, Einzelseite f├╝r einen Eintrag (“single”), “Pages”-Template (s.u.), Kategorie-Archiv, Autor-Archiv, Datums-Archiv und allg. Archiv

Kill the Spam
Matt Mullenweg erw├Ąhnte vor kurzem in seinem Blog, dass er ein WP-Feature zur Bek├Ąmpfung gegen den Kommentar-/Trackback-Spam erfolgreich testen w├╝rde. Leider hatte er das Feature nicht benannt und einige Tage sp├Ąter konnte ich in den Source von WP auch nichts au├čergew├Âhnliches entdecken… vielleicht habe ich was ├╝bersehen.

Trotzdem hat sich gegen├╝ber WP 1.2 einiges getan, dass zumindest den Komfort mit dem man Spam bek├Ąmpfen kann, enorm erh├Âht.

Bislang konnte man eine Liste von W├Ârtern anlegen (z.B. “Porno”), die dazu f├╝hrten dass Kommentare in die Moderationsschleife kommen, also erst nach Knopfdruck durch den Blogger ver├Âffentlicht wurden. Neu ist nun eine zweite Liste hinzugekommen, die entsprechende Kommentare nicht in die Moderationsschleife packt, sondern gleich l├Âscht.

Die Moderationsschleife ist in WP 1.5 ├╝bersichtlicher geworden. Sowohl auf der neuen Admin-Homepage (“Dashboard“) als auch in den Untermen├╝s unter “Manage” l├Ą├čt sich die Zahl der Kommentare in der Warteschleife ablesen. In der ├ťbersicht der Kommentare (Manage -> Comments) sind diese potentiellen Spam-Kommentare ausgegraut und lassen sich daher gut von “normalen” Kommentaren unterscheiden.

In der Moderationsschleife kann man nun mit zwei Klicks s├Ąmtliche Kommentare l├Âschen. Man muss also nicht mehr, wie bei WP 1.2, alle Checkboxes einzelnd anklicken oder den Umweg ├╝ber den “Mass Edit”-Modus gehen.

Pages
“Pages” sind Seiten die zwar wie Weblog-Eintr├Ąge von WordPress erzeugt werden, aber au├čerhalb der normalen Weblog-Hierachie agieren. H├Ârt sich kompliziert an, ist aber in realiter ganz simpel: musste man bislang f├╝r Seiten wie “Impressum”, “About” u.├Ą. h├Ąndisch Seiten und/oder Verlinkung einbauen, k├Ânnen diese nun in WordPress als “Pages” eingegeben werden. Entsprechend gibt es WordPress- bzw. PHP-Funktionen um sich alle Pages in einem Template ausgeben zu lassen, z.B. in einer Seitennavigation.

Leider scheinen Pages aber noch nicht von der WordPress-internen Suche (sprich: dem Query-String-Argument “s“) erfasst zu werden.

WP-/PHP-Funktionen
Es gibt dar├╝ber hinaus diverse neue oder modifizierte WordPress-Funktionen die sich in PHP einbauen lassen. So gibt es nun die lange vermisste “n├Ąchster/voriger-Eintrag”-Funktion. Zahlreiche neue “Hooks”, also M├Âglichkeiten f├╝r Plug-Ins in WordPress einzugreifen, wurden programmiert. PlugIns lassen sich nun mit eigenen Seiten in die Admin-Oberfl├Ąche integrieren.

Sonstiges
Ich habe keine der allerletzten Betas ausprobiert, allerdings soll zwischenzeitlich der ber├╝chtigte nofollow-Wert f├╝r das rel-Attribut eingebaut sein, zur vermeidlichen, indirekten Spam-Abwehr. Wenn es so umgesetzt wurde, wie in der wp-hackers-Mailingliste angek├╝ndigt wurde, soll sich das “Feature” nicht ohne PlugIn (selber programmiert oder Fremd-PlugIn) ausschalten lassen (wohl nur per Checkbox auf per-Post-Basis).

Die Admin-Oberfl├Ąche wurde umger├Ąumt. Am Anfang steht nun das “Dashboard”, das einen ├ťberblick ├╝ber die letzten Eintr├Ąge, Kommentare, moderierten Kommentare und schlie├člich Meldungen von wordpress.org gibt.

Soll man?

Alleine die ersten beiden neuen Features (Themes, Spam-Handling) rechtfertigen m.E. ein Upgrade.

Ich hatte beim Ausprobieren der Nightlies bislang keine Probleme. Aller Wahrscheinlichkeit nach wird es aber bei irgend jemanden anders sein. Von daher gilt wie bei jeder neuen Software: vorher ein Backup erstellen.

Der gr├Â├čte Aufwand f├╝r bisherige WordPress-User wird vermutlich das Umdenken in die neue Theme-Struktur erfordern und das Umschreiben der bisherigen Templates in Theme-Templates. Wie gut WordPress die Templates beim Upgraden handlet kann ich ebenso wenig beurteilen, wie Einsch├Ątzungen bzgl. der Kompatibilit├Ąt einzelner PlugIns.

Man muss nun ob des (Rest-)Risikos nicht in mittelschweren Paniksch├╝ben verfallen. Es stimmt aber einem in der Tat schon merkw├╝rdig, wenn mitten in der Beta-Phase, nachdem offiziell die T├╝r f├╝r alle neuen Features geschlossen wurden und nur ein Debugging erfolgen sollte, immer noch munter neue Hooks z.B. f├╝r Themes eingebaut werden .

Ein weiteres dunkles Kapitel ist die Dokumentation. Es ist mitunter einfacher im PHP-Code rumzuw├╝hlen, als zu hoffen im WordPress-Wiki f├╝ndig zu werden.