SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
WordPress erweitern.
!
Filter, Actions, Hooks -
Was zum Geier ist das?
!
Frank Staude <frank@staude.net>
Hallo!
Frank Staude

!
Email: frank@staude.net

Twitter: @staude

!
WordPress / BuddyPress Entwickler
bei der Rheinschmiede

!
Moderator im deutschen
WordPress.org Supportforum

!
WP Meetup Hannover

!
Plugins

WordCamp Sprecher

!
Mitarbeit

- wpmeetups.de

- de.wordpress.org
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“
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
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()
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()
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.
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.
Filter!
• apply_filters() ruft Funktionen auf, die sich auf den
jeweiligen Hook registriert haben.

!
• Registrierung via add_filter()

!
• Beispiel: index template, the_title()
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.
Wie finde ich Hooks?
Code von Core/Plugins nach do_action(),
do_actions_ref_array(), apply_filters() und
apply_filters_ref_array() durchsuchen.
Wie finde ich Hooks?
Codex Filter Referenz: 

codex.wordpress.org/Plugin_API/Filter_Reference
Wie finde ich Hooks?	
Codex Action Referenz: 

codex.wordpress.org/Plugin_API/Action_Reference
Wie finde ich Hooks?
Adam Browns WP Hook Database

adambrown.info/p/wp_hooks
Beispiele
• wp_head (Action)

!
• the_title (Filter)

!
• restrict_manage_posts (Filter)

!
• manage_${post_type}_posts_columns (Filter)

manage_$post_type_posts_custom_column
(Action)
Beispiel 1: wp_head()
Beispiel 1: wp_head()
Beispiel 1: wp_head()
Beispiel 1_ wp_head
Beispiel 1: wp_head
Beispiel 2: the_title
Beispiel 2: the_title
Beispiel 2: the_title
Beispiel 2: the_title
Beispiel 2: the_title
Beispiel 2: the_title
Beispiel 2: the_title
Beispiel 2: the_title
Beispiel 2: the_title
Beispiel 3: restrict_manage_posts
Beispiel 3: restrict_manage_posts
Beispiel 3: restrict_manage_posts
Beispiel 4: manage_post_posts_columns
Beispiel 4: manage_post_posts_columns
Links
• de.forums.wordpress.org/
• wpmeetup-hannover.de
• profiles.wordpress.org/fstaude
• de.wikipedia.org/wiki/Hook_(Informatik)
• codex.wordpress.org/Plugin_API#Actions
• codex.wordpress.org/Plugin_API#Filters
• codex.wordpress.org/Function_Reference/do_action
• codex.wordpress.org/Function_Reference/do_action_ref_array
• codex.wordpress.org/Function_Reference/add_action
• codex.wordpress.org/Plugin_API/Action_Reference/wp_head
• codex.wordpress.org/Function_Reference/apply_filters
• codex.wordpress.org/Function_Reference/apply_filters_ref_array
• codex.wordpress.org/Plugin_API/Filter_Reference/the_title
• codex.wordpress.org/Plugin_API/Filter_Reference
• codex.wordpress.org/Plugin_API/Action_Reference
• adambrown.info/p/wp_hooks
• codex.wordpress.org/Plugin_API/Filter_Reference/manage_$post_type_posts_columns
• codex.wordpress.org/Plugin_API/Action_Reference/manage_$post_type_posts_custom_column
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/
Danke für eure Aufmerksamkeit
Jetzt kommen eure Fragen!

Weitere ähnliche Inhalte

Ähnlich wie WordPress: Filter, Actions, Hooks - Was zum Geier ist das?

Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
 
Javascript done right
Javascript done rightJavascript done right
Javascript done rightDirk Ginader
 
Fanstatic pycon.de 2012
Fanstatic pycon.de 2012Fanstatic pycon.de 2012
Fanstatic pycon.de 2012Daniel Havlik
 
Wordpress Template Workshop
Wordpress Template WorkshopWordpress Template Workshop
Wordpress Template Workshopphillipgroschup
 
Git class german / english
Git class german / englishGit class german / english
Git class german / englishKevin Read
 
Sh optifind praesentation_20130311
Sh optifind praesentation_20130311Sh optifind praesentation_20130311
Sh optifind praesentation_20130311Stefan Moises
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJSSebastian Springer
 
Projekt Web Hooks 04
Projekt  Web Hooks 04Projekt  Web Hooks 04
Projekt Web Hooks 04guest081f80d
 
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)Michael Whittaker
 
Hoodie - Webapplikationen ohne backend
Hoodie - Webapplikationen ohne backendHoodie - Webapplikationen ohne backend
Hoodie - Webapplikationen ohne backendPhilipp Müns
 
Effiziente Fehlersuche In Web 2.0 Anwendungen - Graz Edition
Effiziente Fehlersuche In Web 2.0 Anwendungen - Graz EditionEffiziente Fehlersuche In Web 2.0 Anwendungen - Graz Edition
Effiziente Fehlersuche In Web 2.0 Anwendungen - Graz EditionMartin Leyrer
 
Der WordPress Wolpertinger
Der WordPress WolpertingerDer WordPress Wolpertinger
Der WordPress Wolpertingerfrankstaude
 
Childthemes mit git – WordPress MeetUp CGN
Childthemes mit git – WordPress MeetUp CGNChildthemes mit git – WordPress MeetUp CGN
Childthemes mit git – WordPress MeetUp CGNpixolin
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Gregor Biswanger
 
TYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenTYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenAlex Kellner
 
Blogs für Kommunalpolitiker
Blogs für KommunalpolitikerBlogs für Kommunalpolitiker
Blogs für Kommunalpolitikerwebfischerei
 
Blogs fuer kommunalpolitiker
Blogs fuer kommunalpolitikerBlogs fuer kommunalpolitiker
Blogs fuer kommunalpolitikerandreasblau
 
Effiziente Fehlersuche in Web 2.0 Anwendungen
Effiziente Fehlersuche in Web 2.0 AnwendungenEffiziente Fehlersuche in Web 2.0 Anwendungen
Effiziente Fehlersuche in Web 2.0 AnwendungenMartin Leyrer
 

Ähnlich wie WordPress: Filter, Actions, Hooks - Was zum Geier ist das? (20)

Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
Javascript done right
Javascript done rightJavascript done right
Javascript done right
 
Fanstatic pycon.de 2012
Fanstatic pycon.de 2012Fanstatic pycon.de 2012
Fanstatic pycon.de 2012
 
Wordpress Template Workshop
Wordpress Template WorkshopWordpress Template Workshop
Wordpress Template Workshop
 
Git class german / english
Git class german / englishGit class german / english
Git class german / english
 
Sh optifind praesentation_20130311
Sh optifind praesentation_20130311Sh optifind praesentation_20130311
Sh optifind praesentation_20130311
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJS
 
Projekt Web Hooks 04
Projekt  Web Hooks 04Projekt  Web Hooks 04
Projekt Web Hooks 04
 
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
 
Hoodie - Webapplikationen ohne backend
Hoodie - Webapplikationen ohne backendHoodie - Webapplikationen ohne backend
Hoodie - Webapplikationen ohne backend
 
Effiziente Fehlersuche In Web 2.0 Anwendungen - Graz Edition
Effiziente Fehlersuche In Web 2.0 Anwendungen - Graz EditionEffiziente Fehlersuche In Web 2.0 Anwendungen - Graz Edition
Effiziente Fehlersuche In Web 2.0 Anwendungen - Graz Edition
 
Moderner Webentwicklungs-Workflow
Moderner Webentwicklungs-WorkflowModerner Webentwicklungs-Workflow
Moderner Webentwicklungs-Workflow
 
Der WordPress Wolpertinger
Der WordPress WolpertingerDer WordPress Wolpertinger
Der WordPress Wolpertinger
 
Childthemes mit git – WordPress MeetUp CGN
Childthemes mit git – WordPress MeetUp CGNChildthemes mit git – WordPress MeetUp CGN
Childthemes mit git – WordPress MeetUp CGN
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
 
TYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenTYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein Wissen
 
Blogs für Kommunalpolitiker
Blogs für KommunalpolitikerBlogs für Kommunalpolitiker
Blogs für Kommunalpolitiker
 
Blogs fuer kommunalpolitiker
Blogs fuer kommunalpolitikerBlogs fuer kommunalpolitiker
Blogs fuer kommunalpolitiker
 
Effiziente Fehlersuche in Web 2.0 Anwendungen
Effiziente Fehlersuche in Web 2.0 AnwendungenEffiziente Fehlersuche in Web 2.0 Anwendungen
Effiziente Fehlersuche in Web 2.0 Anwendungen
 
Wicket Kurzübersicht
Wicket KurzübersichtWicket Kurzübersicht
Wicket Kurzübersicht
 

Mehr von frankstaude

State of TV – Vortragsaufzeichnung, aktueller Stand und Ausblick
State of TV – Vortragsaufzeichnung, aktueller Stand und AusblickState of TV – Vortragsaufzeichnung, aktueller Stand und Ausblick
State of TV – Vortragsaufzeichnung, aktueller Stand und Ausblickfrankstaude
 
Automatisierung in Zeiten von Social Media, Messenger-Diensten und Bots
Automatisierung in Zeiten von Social Media, Messenger-Diensten und BotsAutomatisierung in Zeiten von Social Media, Messenger-Diensten und Bots
Automatisierung in Zeiten von Social Media, Messenger-Diensten und Botsfrankstaude
 
CPT UI und ACF - Wie werden Inhalte sinnvoll strukturiert?
CPT UI und ACF - Wie werden Inhalte sinnvoll strukturiert?CPT UI und ACF - Wie werden Inhalte sinnvoll strukturiert?
CPT UI und ACF - Wie werden Inhalte sinnvoll strukturiert?frankstaude
 
TablePress - Warum und welche Erweiterungen gibt es?
TablePress - Warum und welche Erweiterungen gibt es?TablePress - Warum und welche Erweiterungen gibt es?
TablePress - Warum und welche Erweiterungen gibt es?frankstaude
 
Gamifizierung mit WordPress – Eine Einführung und Einsatz in der Schule
Gamifizierung mit WordPress – Eine Einführung und Einsatz in der SchuleGamifizierung mit WordPress – Eine Einführung und Einsatz in der Schule
Gamifizierung mit WordPress – Eine Einführung und Einsatz in der Schulefrankstaude
 
Erneute Bestellung in WooCommerce
Erneute Bestellung in WooCommerceErneute Bestellung in WooCommerce
Erneute Bestellung in WooCommercefrankstaude
 
Gamification mit WordPress
Gamification mit WordPressGamification mit WordPress
Gamification mit WordPressfrankstaude
 
Mobile Apps mit WordPress
Mobile Apps mit WordPressMobile Apps mit WordPress
Mobile Apps mit WordPressfrankstaude
 
Suchst du noch - Oder findest du schon?
Suchst du noch - Oder findest du schon?Suchst du noch - Oder findest du schon?
Suchst du noch - Oder findest du schon?frankstaude
 
State of TV - Stand der Vortragsaufzeichnung 11/2017
State of TV - Stand der Vortragsaufzeichnung 11/2017State of TV - Stand der Vortragsaufzeichnung 11/2017
State of TV - Stand der Vortragsaufzeichnung 11/2017frankstaude
 
Suchst du noch - Oder findest du schon?
Suchst du noch - Oder findest du schon?Suchst du noch - Oder findest du schon?
Suchst du noch - Oder findest du schon?frankstaude
 
Suchst du noch? Oder findest du schon?
Suchst du noch? Oder findest du schon?Suchst du noch? Oder findest du schon?
Suchst du noch? Oder findest du schon?frankstaude
 
Eine WordPress Meetup Webseite auf Autopilot
Eine WordPress Meetup Webseite auf AutopilotEine WordPress Meetup Webseite auf Autopilot
Eine WordPress Meetup Webseite auf Autopilotfrankstaude
 
Vorträge aufzeichnen ohne Nachbearbeitung
Vorträge aufzeichnen ohne NachbearbeitungVorträge aufzeichnen ohne Nachbearbeitung
Vorträge aufzeichnen ohne Nachbearbeitungfrankstaude
 
Nürnberg WordPress Meetup - Custom Post Types mit PODS.io
Nürnberg WordPress Meetup - Custom Post Types mit PODS.ioNürnberg WordPress Meetup - Custom Post Types mit PODS.io
Nürnberg WordPress Meetup - Custom Post Types mit PODS.iofrankstaude
 
Custom Post Types mit PODS.io
Custom Post Types mit PODS.ioCustom Post Types mit PODS.io
Custom Post Types mit PODS.iofrankstaude
 
Suchst du noch? Oder findest du schon?
Suchst du noch? Oder findest du schon?Suchst du noch? Oder findest du schon?
Suchst du noch? Oder findest du schon?frankstaude
 
WordPress auf Deutsch übersetzen
WordPress auf Deutsch übersetzenWordPress auf Deutsch übersetzen
WordPress auf Deutsch übersetzenfrankstaude
 
Sessions aufzeichnen mit möglichst wenig Aufwand - Stand Oktober 2016
Sessions aufzeichnen mit möglichst wenig Aufwand - Stand Oktober 2016Sessions aufzeichnen mit möglichst wenig Aufwand - Stand Oktober 2016
Sessions aufzeichnen mit möglichst wenig Aufwand - Stand Oktober 2016frankstaude
 

Mehr von frankstaude (20)

State of TV – Vortragsaufzeichnung, aktueller Stand und Ausblick
State of TV – Vortragsaufzeichnung, aktueller Stand und AusblickState of TV – Vortragsaufzeichnung, aktueller Stand und Ausblick
State of TV – Vortragsaufzeichnung, aktueller Stand und Ausblick
 
Automatisierung in Zeiten von Social Media, Messenger-Diensten und Bots
Automatisierung in Zeiten von Social Media, Messenger-Diensten und BotsAutomatisierung in Zeiten von Social Media, Messenger-Diensten und Bots
Automatisierung in Zeiten von Social Media, Messenger-Diensten und Bots
 
CPT UI und ACF - Wie werden Inhalte sinnvoll strukturiert?
CPT UI und ACF - Wie werden Inhalte sinnvoll strukturiert?CPT UI und ACF - Wie werden Inhalte sinnvoll strukturiert?
CPT UI und ACF - Wie werden Inhalte sinnvoll strukturiert?
 
TablePress - Warum und welche Erweiterungen gibt es?
TablePress - Warum und welche Erweiterungen gibt es?TablePress - Warum und welche Erweiterungen gibt es?
TablePress - Warum und welche Erweiterungen gibt es?
 
Gamifizierung mit WordPress – Eine Einführung und Einsatz in der Schule
Gamifizierung mit WordPress – Eine Einführung und Einsatz in der SchuleGamifizierung mit WordPress – Eine Einführung und Einsatz in der Schule
Gamifizierung mit WordPress – Eine Einführung und Einsatz in der Schule
 
Erneute Bestellung in WooCommerce
Erneute Bestellung in WooCommerceErneute Bestellung in WooCommerce
Erneute Bestellung in WooCommerce
 
Gamification mit WordPress
Gamification mit WordPressGamification mit WordPress
Gamification mit WordPress
 
Mobile Apps mit WordPress
Mobile Apps mit WordPressMobile Apps mit WordPress
Mobile Apps mit WordPress
 
Suchst du noch - Oder findest du schon?
Suchst du noch - Oder findest du schon?Suchst du noch - Oder findest du schon?
Suchst du noch - Oder findest du schon?
 
State of TV - Stand der Vortragsaufzeichnung 11/2017
State of TV - Stand der Vortragsaufzeichnung 11/2017State of TV - Stand der Vortragsaufzeichnung 11/2017
State of TV - Stand der Vortragsaufzeichnung 11/2017
 
Suchst du noch - Oder findest du schon?
Suchst du noch - Oder findest du schon?Suchst du noch - Oder findest du schon?
Suchst du noch - Oder findest du schon?
 
Suchst du noch? Oder findest du schon?
Suchst du noch? Oder findest du schon?Suchst du noch? Oder findest du schon?
Suchst du noch? Oder findest du schon?
 
Eine WordPress Meetup Webseite auf Autopilot
Eine WordPress Meetup Webseite auf AutopilotEine WordPress Meetup Webseite auf Autopilot
Eine WordPress Meetup Webseite auf Autopilot
 
Vorträge aufzeichnen ohne Nachbearbeitung
Vorträge aufzeichnen ohne NachbearbeitungVorträge aufzeichnen ohne Nachbearbeitung
Vorträge aufzeichnen ohne Nachbearbeitung
 
Nürnberg WordPress Meetup - Custom Post Types mit PODS.io
Nürnberg WordPress Meetup - Custom Post Types mit PODS.ioNürnberg WordPress Meetup - Custom Post Types mit PODS.io
Nürnberg WordPress Meetup - Custom Post Types mit PODS.io
 
Custom Post Types mit PODS.io
Custom Post Types mit PODS.ioCustom Post Types mit PODS.io
Custom Post Types mit PODS.io
 
Suchst du noch? Oder findest du schon?
Suchst du noch? Oder findest du schon?Suchst du noch? Oder findest du schon?
Suchst du noch? Oder findest du schon?
 
Pressmatic
PressmaticPressmatic
Pressmatic
 
WordPress auf Deutsch übersetzen
WordPress auf Deutsch übersetzenWordPress auf Deutsch übersetzen
WordPress auf Deutsch übersetzen
 
Sessions aufzeichnen mit möglichst wenig Aufwand - Stand Oktober 2016
Sessions aufzeichnen mit möglichst wenig Aufwand - Stand Oktober 2016Sessions aufzeichnen mit möglichst wenig Aufwand - Stand Oktober 2016
Sessions aufzeichnen mit möglichst wenig Aufwand - Stand Oktober 2016
 

WordPress: Filter, Actions, Hooks - Was zum Geier ist das?

  • 1. WordPress erweitern. ! Filter, Actions, Hooks - Was zum Geier ist das? ! Frank Staude <frank@staude.net>
  • 2. Hallo! Frank Staude ! Email: frank@staude.net Twitter: @staude ! WordPress / BuddyPress Entwickler bei der Rheinschmiede ! Moderator im deutschen WordPress.org Supportforum ! WP Meetup Hannover ! Plugins WordCamp Sprecher ! Mitarbeit - wpmeetups.de - de.wordpress.org
  • 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
  • 15. Beispiele • wp_head (Action) ! • the_title (Filter) ! • restrict_manage_posts (Filter) ! • manage_${post_type}_posts_columns (Filter)
 manage_$post_type_posts_custom_column (Action)
  • 35. Links • de.forums.wordpress.org/ • wpmeetup-hannover.de • profiles.wordpress.org/fstaude • de.wikipedia.org/wiki/Hook_(Informatik) • codex.wordpress.org/Plugin_API#Actions • codex.wordpress.org/Plugin_API#Filters • codex.wordpress.org/Function_Reference/do_action • codex.wordpress.org/Function_Reference/do_action_ref_array • codex.wordpress.org/Function_Reference/add_action • codex.wordpress.org/Plugin_API/Action_Reference/wp_head • codex.wordpress.org/Function_Reference/apply_filters • codex.wordpress.org/Function_Reference/apply_filters_ref_array • codex.wordpress.org/Plugin_API/Filter_Reference/the_title • codex.wordpress.org/Plugin_API/Filter_Reference • codex.wordpress.org/Plugin_API/Action_Reference • adambrown.info/p/wp_hooks • codex.wordpress.org/Plugin_API/Filter_Reference/manage_$post_type_posts_columns • codex.wordpress.org/Plugin_API/Action_Reference/manage_$post_type_posts_custom_column
  • 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/
  • 37. Danke für eure Aufmerksamkeit Jetzt kommen eure Fragen!