WordPress Hooks definieren und nutzen

WordPress basiert auf dem sogenannten Hook-System. Dieses dient WordPress und allen Erweiterungen um Funktionen an bestimmter Stelle einzubringen. Hintergründe und Verständnis habe ich versucht in unzähligen Blogartikeln zu verbreiten und aktuell im t3n-Magazin. Die Hooks sind aber nicht nur zum einhaken, sondern können ebenso in eigene Erweiterungen genutzt werden und so mehr Übersicht schaffen und zusätzliche Schnittstellen für weitere Entwicklungen bieten. Gerade die zweite Möglichkeit ist interessant, wenn man ein Theme erstellt, welches diverse Schnittstellen bieten soll oder ein Plugin kreiert, was durch andere Autoren erweitert werden kann oder als Framework dienen soll.

WP Basis Theme

Fast seit dem ich mit WordPress beschäftige, irgendwann mit Version 0.71 war das, habe ich mir eine Theme-Layout geschaffen, was ich immer zum Neustart eines neuen Theme heran ziehe – WP Basis.
Fast genauso lange veröffentliche ich dieses Theme unter GPL und es wird wohl recht vielfach genutzt. Die Entwicklung am Theme habe ich weiter getrieben und das Theme ist mit jeder Version von WordPress gewachsen und passt sich den jeweiligen Änderungen an. Um diese Veränderungen besser Händeln zu können, habe ich das Theme seit geraumer Zeit im SVN von Google Code abgelegt und konnte dadurch auch auf die Mitarbeit von Andreas und Dominik zählen – vielen Dank an dieser Stelle nochmal!

Immer wieder kamen Fragen rein, ob das alte Theme aktualisiert wird und wann – daher hier nun die Info, ich habe einen Stand erreicht, der stabil ist und das Theme ist mit der aktuellen Version 2.7 und der kommenden Version 2.8 von WordPress kompatibel. Daher hier nun offiziell die Freigabe zum Download und Nutzen.

Vorbei mit my-hacks.php?

Noch diesen Monat soll die neue Version 2.8 von WordPress erscheinen; in der Blogosphäre wird schon lange kein so großer Wind mehr darum gemacht, wie es noch in den Jahren um Version 2.0 war. Aber der Linkmangel etc. wird ja auch in anderen Themen bemängelt.

Die neue Version bringt viele neue Sachen, fixt eine große Anzahl von Problemen und WordPress gestaltet sich aus meiner Sicht noch offener als in den Versionen zu vor. Eine der Punkte, die Benutzer beachten sollten, ist die Tatsache, dass man die Option für die Unterstützung der my-hacks.php entfernt. 2003 wurde diese Datei noch als Feature angekündigt, geht sie nun wieder still und leise. WordPress hat ein ausgefeiltes Schnittstellen-System; man kann an diversen Punkten ansetzen und neue Funktionalitäten einbringen, so dass man sich dazu entschieden hat, die Lösung nicht mehr zu unterstützen. Alternativen und Möglichkeiten des weiteren Nutzen will hier kurz aufzeigen.

Keine Sub-Kategorien im Loop von WordPress

Nicht immer soll die Ausgabe des Loop innerhalb einer Kategorie die Unterkategorien enthalten. Um das zu bewerkstelligen kann man einen eigene WP Query bauen und jeweils ein Template erstellen, siehe einige Tipps und Hinweis dazu in einem anderen Beitrag von mir. Alternativ kann man aber auch einen Hook nutzen und alle Unterkategorien zu filtern. Die folgende Syntax ablegen in der functions.php des Themes oder in ein Plugin auslagern und fertig.

Alternativ kann man diesen Hook aber auch zu anderen Sachen benutzen. Auch dazu möchte ich hier einige Worte verlieren.

Statische Links zu WordPress Seiten hinzufügen

Nicht selten werden die Menus auf Blogs, welche mit WordPress arbeiten, mit statischen Links erstellt. Das mag anfangs einfacher erscheinen und weniger Mühe machen, aber bei Veränderungen oder Pflege durch User, die keine Kenntnis oder Zugriffe auf die Templates haben, ist es aufwändig, fehleranfällig und umständlich. Daher bietet es sich an, lieber die nötigen Template Tags zu nutzen und mit Hilfe der Parameter die nicht erwünschte (exclude) oder erwünschten (include) Seiten zu laden. Zusätzlich kann man Inhalte hinzufügen via Hook, was ich hier mal kurz erklären will.

rel=“canonical“-URL für WordPress

Doppelter Content ist immer wieder ein Thema bei Suchmaschinen, besonders in Zusammenhang mit Content Management Systemen und Blog-Applikationen. Daher hat man sich gemeinsam (Google, Yahoo und Microsoft) für einen Hinweis mit Hilfe des link-Tag entschieden. Wie immer kann man dafür diverse Plugins einsetzen oder das eigene Theme erweitern um den Hinweis für die Suchmaschinen mit dem Hinweis zu versehen. Die zweite Möglichkeit sieht in meinem bevorzugtem Code wie folgt aus.

WordPress Theme in Abhängigkeit wechseln

WordPress wird mitunter nicht nur als Blogplattform eingesetzt; denken wir an die Anwendung CMS oder Präsentation von Fotos, so sind das nur einige wenige aus der großen Auswahl. Nicht selten will man dabei für die unterschiedlichsten Abhängigkeiten ein anderes Design laden. So hat meist der Photoblog ein anderes Design als der Weblog.

Im Grunde kann man das recht einfach machen und nicht immer muss man dazu eine umfangreiche Abfrage in die Templates bauen oder gar verschieden Installation von WordPress einrichten. Ebenso kann man sich mit der folgenden gezeigten Lösung mehr Übersicht der getrennten Themes erarbeiten. Im Zuge eines individuellen Designs, wie es beispielsweise bei Nico oder Gerrit diskutiert wird, hat man so recht viele Möglichkeiten.

Zähler für Kommentare, Track- und Pingbacks ab WordPress 2.7

Seit WordPress 2.7 gibt es eine API für den Bereich der Kommentare. Damit kann man auch den PHP-Anteil innerhalb der comments.php entschlacken, je nach eigenem Ermessen. Jean-Baptiste zeigt eine einfache Lösung, um die Kommentare zu zählen. Die Lösung sollte bekannt sein und wird quasi seit der ersten WordPress Veröffentlichung so realisiert. Wollte man dann aber einen Filter über den Zähler haben, der beispielsweise nur die Trackbacks zählt oder auch nur die Kommentare, die per Formular eingehen, dann scheitert diese Lösung. Außerdem ist das How To doch recht schmal und PHP-Laien könnten in Schwierigkeiten geraten.

Aus diesem Zusammenhang und diverser Fragen zum Thema zeige ich mal zwei einfache Funktionen, die in der functions.php des Themes abgelegt werden und dann willkürlich im Theme genutzt werden können. In der Regel werden sie dann also zur Ausgabe in der comments.php heran gezogen.

Tweet This mit WordPress

In der Aufarbeitung meiner Abonnements im Feed-Reader sind mir diverse Artikel aufgefallen, die das eine oder andere Plugin empfehlen um einen Link zum Beitrag zu ergänzen, um den jeweiligen Beitrag bei Twitter zu empfehlen. Im Grunde stellen dann die meisten Plugins eine Funktion beriet, die man in das Template des Themes integriert.

Wie so oft ist das aber ein wenig übertrieben, und wie auch schon in der Vergangenheit mit der Integration von Links zu Social Bookmark Diensten, gibt es auch dafür eine einfache Lösung mi Hilfe einer Funktion aus dem WordPress Core.