SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
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
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 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

Andere mochten auch

Trabajo en slideshare raiza nuñez castañeda
Trabajo en slideshare raiza nuñez castañedaTrabajo en slideshare raiza nuñez castañeda
Trabajo en slideshare raiza nuñez castañedaraizanc
 
Luis javier melo garcia
Luis javier melo garciaLuis javier melo garcia
Luis javier melo garciaJeivis Lumega
 
Biocombustibles
BiocombustiblesBiocombustibles
Biocombustibleszarys27
 
Presentación pelicula sin limites
Presentación pelicula sin limitesPresentación pelicula sin limites
Presentación pelicula sin limiteserikajuliana0226
 
Emanuel ginobili rodriguez
Emanuel ginobili rodriguezEmanuel ginobili rodriguez
Emanuel ginobili rodriguezelias987
 
Elementos de computación
Elementos de computaciónElementos de computación
Elementos de computaciónNati Palacios
 
#NuevoIFAI Hacia un #EstadoAbierto
#NuevoIFAI Hacia un #EstadoAbierto#NuevoIFAI Hacia un #EstadoAbierto
#NuevoIFAI Hacia un #EstadoAbiertoJoel Salas
 
Analisisydesarrollodesistemasdeinformacion1 140522112809-phpapp01
Analisisydesarrollodesistemasdeinformacion1 140522112809-phpapp01Analisisydesarrollodesistemasdeinformacion1 140522112809-phpapp01
Analisisydesarrollodesistemasdeinformacion1 140522112809-phpapp01Sebastián Santana A
 
Suchmaschinen Optimierung
Suchmaschinen OptimierungSuchmaschinen Optimierung
Suchmaschinen Optimierungch.ch
 
Material unidad 2 2° año epea 2014
Material unidad 2 2° año epea 2014Material unidad 2 2° año epea 2014
Material unidad 2 2° año epea 2014rocodilon
 
Los materiales Lara y Calle
Los materiales Lara y CalleLos materiales Lara y Calle
Los materiales Lara y Callesebastian calle
 
Pacman
PacmanPacman
Pacman319512
 

Andere mochten auch (20)

Trabajo en slideshare raiza nuñez castañeda
Trabajo en slideshare raiza nuñez castañedaTrabajo en slideshare raiza nuñez castañeda
Trabajo en slideshare raiza nuñez castañeda
 
Luis javier melo garcia
Luis javier melo garciaLuis javier melo garcia
Luis javier melo garcia
 
Biocombustibles
BiocombustiblesBiocombustibles
Biocombustibles
 
El Caribe
El CaribeEl Caribe
El Caribe
 
Elisa durán eje2_actividad3
Elisa durán eje2_actividad3Elisa durán eje2_actividad3
Elisa durán eje2_actividad3
 
Deber 4
Deber 4Deber 4
Deber 4
 
Presentación pelicula sin limites
Presentación pelicula sin limitesPresentación pelicula sin limites
Presentación pelicula sin limites
 
Emanuel ginobili rodriguez
Emanuel ginobili rodriguezEmanuel ginobili rodriguez
Emanuel ginobili rodriguez
 
Elementos de computación
Elementos de computaciónElementos de computación
Elementos de computación
 
#NuevoIFAI Hacia un #EstadoAbierto
#NuevoIFAI Hacia un #EstadoAbierto#NuevoIFAI Hacia un #EstadoAbierto
#NuevoIFAI Hacia un #EstadoAbierto
 
Analisisydesarrollodesistemasdeinformacion1 140522112809-phpapp01
Analisisydesarrollodesistemasdeinformacion1 140522112809-phpapp01Analisisydesarrollodesistemasdeinformacion1 140522112809-phpapp01
Analisisydesarrollodesistemasdeinformacion1 140522112809-phpapp01
 
Suchmaschinen Optimierung
Suchmaschinen OptimierungSuchmaschinen Optimierung
Suchmaschinen Optimierung
 
Material unidad 2 2° año epea 2014
Material unidad 2 2° año epea 2014Material unidad 2 2° año epea 2014
Material unidad 2 2° año epea 2014
 
Los materiales Lara y Calle
Los materiales Lara y CalleLos materiales Lara y Calle
Los materiales Lara y Calle
 
Integrierte Welterbe-Managementpläne (Tagung, Regensburg, 29.09.2012)
Integrierte Welterbe-Managementpläne (Tagung, Regensburg, 29.09.2012)Integrierte Welterbe-Managementpläne (Tagung, Regensburg, 29.09.2012)
Integrierte Welterbe-Managementpläne (Tagung, Regensburg, 29.09.2012)
 
mabio
mabiomabio
mabio
 
Pacman
PacmanPacman
Pacman
 
Ein Winter voller Lebensfreude 2015/2016 Rumänien
Ein Winter voller Lebensfreude 2015/2016 RumänienEin Winter voller Lebensfreude 2015/2016 Rumänien
Ein Winter voller Lebensfreude 2015/2016 Rumänien
 
Parque arvi presentacion
Parque arvi presentacionParque arvi presentacion
Parque arvi presentacion
 
Plewa pr 1_2013
Plewa pr 1_2013Plewa pr 1_2013
Plewa pr 1_2013
 

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

Themes – Wieso, Weshalb, Warum!?
Themes – Wieso, Weshalb, Warum!?Themes – Wieso, Weshalb, Warum!?
Themes – Wieso, Weshalb, Warum!?frankstaude
 
Entwickeln mit Wordpress
Entwickeln mit WordpressEntwickeln mit Wordpress
Entwickeln mit WordpressBlogwerk AG
 
jQuery in TYPO3 nutzen
jQuery in TYPO3 nutzenjQuery in TYPO3 nutzen
jQuery in TYPO3 nutzenAlex Kellner
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptRalf Schwoebel
 
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
 
Git class german / english
Git class german / englishGit class german / english
Git class german / englishKevin Read
 
Fanstatic pycon.de 2012
Fanstatic pycon.de 2012Fanstatic pycon.de 2012
Fanstatic pycon.de 2012Daniel Havlik
 
Hoodie - Webapplikationen ohne backend
Hoodie - Webapplikationen ohne backendHoodie - Webapplikationen ohne backend
Hoodie - Webapplikationen ohne backendPhilipp Müns
 
Testing untestable code - PHPUGFFM 01/11
Testing untestable code - PHPUGFFM 01/11Testing untestable code - PHPUGFFM 01/11
Testing untestable code - PHPUGFFM 01/11Stephan Hochdörfer
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJSSebastian Springer
 

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

Themes – Wieso, Weshalb, Warum!?
Themes – Wieso, Weshalb, Warum!?Themes – Wieso, Weshalb, Warum!?
Themes – Wieso, Weshalb, Warum!?
 
Entwickeln mit Wordpress
Entwickeln mit WordpressEntwickeln mit Wordpress
Entwickeln mit Wordpress
 
jQuery in TYPO3 nutzen
jQuery in TYPO3 nutzenjQuery in TYPO3 nutzen
jQuery in TYPO3 nutzen
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit Javascript
 
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
 
Git class german / english
Git class german / englishGit class german / english
Git class german / english
 
Fanstatic pycon.de 2012
Fanstatic pycon.de 2012Fanstatic pycon.de 2012
Fanstatic pycon.de 2012
 
Hoodie - Webapplikationen ohne backend
Hoodie - Webapplikationen ohne backendHoodie - Webapplikationen ohne backend
Hoodie - Webapplikationen ohne backend
 
Testing untestable code - PHPUGFFM 01/11
Testing untestable code - PHPUGFFM 01/11Testing untestable code - PHPUGFFM 01/11
Testing untestable code - PHPUGFFM 01/11
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJS
 

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
 

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

  • 1. 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
  • 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)
  • 36. 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
  • 37. 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/
  • 38. Danke für eure Aufmerksamkeit Jetzt kommen eure Fragen!