Nicht „Was die Welt im Innersten zusammenhält“, sondern was uns WordPress möglichst weit öffnet, das sind die Hooks. Egal ob Theme oder Plugin, um etwas in WordPress zu ändern, zu erweitern, umzubauen und das ohne dass man direkt im WordPress Code ändert, dazu muss man verstehen was Hooks sind und wie diese Funktionieren. Egal ob man ein komplexes Plugin bauen möchte oder nur in seinem verwendeten Theme z.B. den Titel der Beiträge manipulieren möchte.
2. Hallo!
Frank Staude
Email: frank@staude.net
Twitter: @staude
Webseite: www.staude.net
GitHub: staude
AdminPress - WordPress Administration
Moderator im deutschen WordPress.org Supportforum
Validator für die deutsche BuddyPress Übersetzung
de.wordpress.org
WPMeetups
WP Meetup Hannover
WP Meetup Franken (Nürnberg)
Plugins
3. Schon mal gehört?
• Dann Hook dich da rein!
• Das kannst du per Filter noch
ändern.
• Da kann man „von außen“ noch
was ändern / manipulieren
• Das kannst du per Plugin
„steuern“
4. Hooks?
Ein Hook bezeichnet in der Informatik eine Schnittstelle, mit der
bestehender Programmcode durch dritte erweitert werden kann.
Über einen Hook (deutsch Haken) kann man sich in Wordpress an
definierten Stellen “einhaken” und dort eigenen Programmcode
ausführen.
Es ist also möglich Wordpress zu manipulieren, ohne den
eigentlichen Code zu verändern. Das bedeutet, das die Eingriffe
die man vorgenommen hat, auch eine Aktualisierung des
Wordpress Core überstehen.
Es gibt zwei Arten von Hooks in Wordpress
• Actions
• Filter
5. Actions?
• Ein Action Hook sagt: Ich habe etwas gemacht. Wenn
du drauf reagieren musst, dann tu es.
• Hooks werden von den Funktionen aufgerufen
• do_action()
• do_actions_ref_array()
6. Actions?
• do_action() ruft Funktionen auf, die sich auf die jeweilige
Aktion registriert haben.
• Von do_action() aufgerufene Funktionen beeinflussen
sich nicht gegenseitig.
• Registrierung via add_action()
• Beispiel: header template, wp_head()
7. Actions!
Aktionen werden aufgerufen an der Stelle, wo sich im Code ein
do_action() Aufruf befindet. Die aufgerufenen Aktionen können sich
nicht gegenseitig beeinflussen und geben auch nichts an die
aufrufende Stelle zurück.
8. Filter?
• Ein Filter Hook sagt: Hier ist Inhalt, mach damit etwas,
bevor ich ihn weiter verwende.
• Filter werden von der Funktion aufgerufen
• apply_filters()
• apply_filters_ref_array()
• Filter bilden „Ketten“, die Rückgabe der ersten Funktion
ist die Eingabe der zweiten Funktion usw.
9. Filter!
• apply_filters() ruft Funktionen auf, die sich auf den
jeweiligen Hook registriert haben.
• Registrierung via add_filter()
• Beispiel: index template, the_title()
10. Filter!
Filter nehmen Inhalt entgegen, verändern ihn und geben ihn zurück. Alle auf
einen Hook registrierten Filter werden nacheinander als Kette aufgerufen. Der
Rückgabewert des ersten Filters ist der Input des zweiten Filters usw bis alle
Filter für den Hook durchlaufen sind. Mit dem Rückgabewert des letzten Filters
läuft dann der aufrufende Programmcode weiter.
11. Wie finde ich Hooks?
Code von Core/Plugins nach do_action(),
do_actions_ref_array(), apply_filters() und
apply_filters_ref_array() durchsuchen.
12. Wie finde ich Hooks?
Codex Filter Referenz:
codex.wordpress.org/Plugin_API/Filter_Reference
13. Wie finde ich Hooks?
Codex Action Referenz:
codex.wordpress.org/Plugin_API/Action_Reference
14. Wie finde ich Hooks?
Adam Browns WP Hook Database
adambrown.info/p/wp_hooks
36. Credits
• Seite 1, Logo und Bild: WordCamp Hamburg
• Seite 3, Foto Paris Tuileries Garden Facepalm statue CC
BY 2.0. Alex E. Proimos - http://www.flickr.com/photos/
proimos/4199675334/