SlideShare a Scribd company logo
1 of 37
Download to read offline
Filter, Actions, Hooks -
Was zum Geier ist das?
Frank Staude <frank@staude.net>
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
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!

More Related Content

Viewers also liked

Positions De Sexe 1193251513655304 4
Positions De Sexe 1193251513655304 4Positions De Sexe 1193251513655304 4
Positions De Sexe 1193251513655304 4westberti71
 
Praktikumslehrpersonen
PraktikumslehrpersonenPraktikumslehrpersonen
PraktikumslehrpersonenFutter Kathrin
 
Was Man Bedenken Sollte
Was Man Bedenken SollteWas Man Bedenken Sollte
Was Man Bedenken Solltedraco2111
 
El avion
El avionEl avion
El avionthebebe
 
López agustín. práctica 2. agosto
López agustín. práctica 2. agostoLópez agustín. práctica 2. agosto
López agustín. práctica 2. agostoJoda98
 
Service-Community im Kundenservice 20100225
Service-Community im Kundenservice 20100225Service-Community im Kundenservice 20100225
Service-Community im Kundenservice 20100225Björn Behrendt
 
Die vibrio Start Up Pakete Zur Kommunikation 20
Die vibrio Start Up Pakete Zur Kommunikation 20Die vibrio Start Up Pakete Zur Kommunikation 20
Die vibrio Start Up Pakete Zur Kommunikation 20guest554d9a
 
Filósofos
FilósofosFilósofos
Filósofosiieiplav
 
Social Media Marketing für Tourismusorganisationen
Social Media Marketing für TourismusorganisationenSocial Media Marketing für Tourismusorganisationen
Social Media Marketing für Tourismusorganisationenxeit AG
 
Evaluación de la comunicación oral
Evaluación de la comunicación oralEvaluación de la comunicación oral
Evaluación de la comunicación oralItt Prinsloo
 
Invitación Marcel y gaby
Invitación Marcel y gabyInvitación Marcel y gaby
Invitación Marcel y gabyNataly Delgado
 
Informatica
InformaticaInformatica
Informaticamanuelpr
 
REFORMA EDUCATIVA INTEGRAL EDUCACIÓN MEDIA SUPERIOR EN MÉXICO!!!
REFORMA EDUCATIVA INTEGRAL EDUCACIÓN MEDIA SUPERIOR EN MÉXICO!!!REFORMA EDUCATIVA INTEGRAL EDUCACIÓN MEDIA SUPERIOR EN MÉXICO!!!
REFORMA EDUCATIVA INTEGRAL EDUCACIÓN MEDIA SUPERIOR EN MÉXICO!!!MARCO CORREA
 
Matriz de valoración adriana y ana cecilia
Matriz de valoración   adriana y ana ceciliaMatriz de valoración   adriana y ana cecilia
Matriz de valoración adriana y ana ceciliaAna Valdés
 

Viewers also liked (20)

E-business e-commerce
E-business  e-commerceE-business  e-commerce
E-business e-commerce
 
Parodontitis
ParodontitisParodontitis
Parodontitis
 
Positions De Sexe 1193251513655304 4
Positions De Sexe 1193251513655304 4Positions De Sexe 1193251513655304 4
Positions De Sexe 1193251513655304 4
 
Derecho sucesoral
Derecho sucesoralDerecho sucesoral
Derecho sucesoral
 
Praktikumslehrpersonen
PraktikumslehrpersonenPraktikumslehrpersonen
Praktikumslehrpersonen
 
Was Man Bedenken Sollte
Was Man Bedenken SollteWas Man Bedenken Sollte
Was Man Bedenken Sollte
 
El avion
El avionEl avion
El avion
 
López agustín. práctica 2. agosto
López agustín. práctica 2. agostoLópez agustín. práctica 2. agosto
López agustín. práctica 2. agosto
 
Service-Community im Kundenservice 20100225
Service-Community im Kundenservice 20100225Service-Community im Kundenservice 20100225
Service-Community im Kundenservice 20100225
 
Die vibrio Start Up Pakete Zur Kommunikation 20
Die vibrio Start Up Pakete Zur Kommunikation 20Die vibrio Start Up Pakete Zur Kommunikation 20
Die vibrio Start Up Pakete Zur Kommunikation 20
 
Filósofos
FilósofosFilósofos
Filósofos
 
Social Media Marketing für Tourismusorganisationen
Social Media Marketing für TourismusorganisationenSocial Media Marketing für Tourismusorganisationen
Social Media Marketing für Tourismusorganisationen
 
Open Government - Warum?
Open Government - Warum?Open Government - Warum?
Open Government - Warum?
 
Evaluación de la comunicación oral
Evaluación de la comunicación oralEvaluación de la comunicación oral
Evaluación de la comunicación oral
 
Invitación Marcel y gaby
Invitación Marcel y gabyInvitación Marcel y gaby
Invitación Marcel y gaby
 
Informatica
InformaticaInformatica
Informatica
 
Actividadde aprendizaje8
Actividadde aprendizaje8Actividadde aprendizaje8
Actividadde aprendizaje8
 
Hotel Pamplona Villava***
Hotel Pamplona Villava***Hotel Pamplona Villava***
Hotel Pamplona Villava***
 
REFORMA EDUCATIVA INTEGRAL EDUCACIÓN MEDIA SUPERIOR EN MÉXICO!!!
REFORMA EDUCATIVA INTEGRAL EDUCACIÓN MEDIA SUPERIOR EN MÉXICO!!!REFORMA EDUCATIVA INTEGRAL EDUCACIÓN MEDIA SUPERIOR EN MÉXICO!!!
REFORMA EDUCATIVA INTEGRAL EDUCACIÓN MEDIA SUPERIOR EN MÉXICO!!!
 
Matriz de valoración adriana y ana cecilia
Matriz de valoración   adriana y ana ceciliaMatriz de valoración   adriana y ana cecilia
Matriz de valoración adriana y ana cecilia
 

Similar to WordCamp Köln 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
 
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
 
jQuery in TYPO3 nutzen
jQuery in TYPO3 nutzenjQuery in TYPO3 nutzen
jQuery in TYPO3 nutzenAlex Kellner
 
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
 
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
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJSSebastian Springer
 
Wordpress Template Workshop
Wordpress Template WorkshopWordpress Template Workshop
Wordpress Template Workshopphillipgroschup
 
Childthemes mit git – WordPress MeetUp CGN
Childthemes mit git – WordPress MeetUp CGNChildthemes mit git – WordPress MeetUp CGN
Childthemes mit git – WordPress MeetUp CGNpixolin
 
Fanstatic pycon.de 2012
Fanstatic pycon.de 2012Fanstatic pycon.de 2012
Fanstatic pycon.de 2012Daniel Havlik
 
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
 
Samuel Zürcher new power of search
Samuel Zürcher new power of searchSamuel Zürcher new power of search
Samuel Zürcher new power of searchDigicomp Academy AG
 
TYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der ZukunftTYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der ZukunftJochen Rau
 
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
 
Metaprogrammierung mit Ruby
Metaprogrammierung mit RubyMetaprogrammierung mit Ruby
Metaprogrammierung mit RubyDario Rexin
 
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
 
2009 03 17 Spring101
2009 03 17 Spring1012009 03 17 Spring101
2009 03 17 Spring101gueste4be40
 
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
 

Similar to WordCamp Köln Filter, Actions, Hooks - was zum Geier ist das? (20)

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
 
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
 
jQuery in TYPO3 nutzen
jQuery in TYPO3 nutzenjQuery in TYPO3 nutzen
jQuery in TYPO3 nutzen
 
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
 
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...
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJS
 
Wordpress Template Workshop
Wordpress Template WorkshopWordpress Template Workshop
Wordpress Template Workshop
 
Childthemes mit git – WordPress MeetUp CGN
Childthemes mit git – WordPress MeetUp CGNChildthemes mit git – WordPress MeetUp CGN
Childthemes mit git – WordPress MeetUp CGN
 
Fanstatic pycon.de 2012
Fanstatic pycon.de 2012Fanstatic pycon.de 2012
Fanstatic pycon.de 2012
 
Testing untestable code - PHPUGFFM 01/11
Testing untestable code - PHPUGFFM 01/11Testing untestable code - PHPUGFFM 01/11
Testing untestable code - PHPUGFFM 01/11
 
Samuel Zürcher new power of search
Samuel Zürcher new power of searchSamuel Zürcher new power of search
Samuel Zürcher new power of search
 
The new power of search
The new power of searchThe new power of search
The new power of search
 
TYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der ZukunftTYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der Zukunft
 
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
 
Metaprogrammierung mit Ruby
Metaprogrammierung mit RubyMetaprogrammierung mit Ruby
Metaprogrammierung mit Ruby
 
Schnelleinstieg in Angular
Schnelleinstieg in AngularSchnelleinstieg in Angular
Schnelleinstieg in Angular
 
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
 
2009 03 17 Spring101
2009 03 17 Spring1012009 03 17 Spring101
2009 03 17 Spring101
 
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)
 

More from 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
 

More from 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
 

WordCamp Köln 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 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
  • 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!