Wordpress Hooks
Tom Forrer
@tforrer
Was sind Hooks?
- Ermöglicht Erweiterbarkeit von Wordpress
- Mechanismus um im Seitenaufbau einzugreifen
- Events im Seitenaufbau und in der Datenverarbeitung
Arten von Hooks
Actions
- Action Hooks markieren eine bestimmte Stelle
während der Bearbeitung eines Requests - Es wird nichts zurückgegeben (kein return)
- Beteiligen sich am Seitenaufbau (mit echo)
Filters
- Möglichkeit Daten zu verändern
- Der zu verändernde Wert wird übergeben (return)
- Nicht am Seitenaufbau beteiligt (kein echo)
Wie funktionieren Actions und Filter?
- Eigener Callback für ein Hook registrieren
- Beim Ausführen des Hooks alle Callbacks
nach Priorität ausführen
- Bei Filter werden Rückgabewerte weitergegeben
Wordpress Hook Funktionen
// Action registrierenadd_action($hook, $callback, $priority, $argCount)// Filter registrierenadd_filter($hook, $callback, $priority, $argCount)// Alle Actions eines Hooks ausführendo_action($hook, $arg ...)// Alle Filter eines Hooks auf einen Wert anwendenapply_filters($hook, $value, $var ...)
Weitere Funktionen: http://codex.wordpress.org/Plugin_API
Beispiel Plugin-Initialisierung
$wpfilter
- Einfacher Assiozativer Array
- Nach Hookname und Prioriät strukturiert
- Für Actions und Filters
array(//...'the_content' => array(10 => array($callback1,$callback2),),//...);
Hooks im Wordpress Seitenaufbau
Codex:
http://codex.wordpress.org/Plugin_API/Action_Reference
http://codex.wordpress.org/Plugin_API/Filter_Reference
http://codex.wordpress.org/Plugin_API/Filter_Reference
Plugin:
Reference
Actions und Filter in Plugins
- Hook so spät anmelden wie möglich
- So spezifischen Hook wie möglich verwenden
- Gefährliche Hooks (z.B. 'posts_limit') können Seitenaufbau
kumulativ schnell verlangsamen
- Möglichkeit von Schleifen vermeiden:
Eigener Filter sollte beim Datenverarbeiten möglichst
weitere Hooks vermeiden
Erweiterbarkeit in eigenen Plugins
- do_action und apply_filters in eigenen Plugins
- Andere Plugins und Themes können so
Funktionalität beeinflussen
- z.B. do_action('after_share_icons')
- z.B. apply_filters('additional_user_settings', $settings)
Erfolgsgeschichte plugin.php
- Seit Wordpress 1.2 (2004) neue Pluginarchitektur
- Kompakt (406 Zeilen Code) und standalone
- Ermöglicht einfache und granulare Erweiterbarkeit
von Wordpress
- Massgebend für Erfolg von Wordpress
Danke
Wordpress Hooks
By Tom Forrer
Wordpress Hooks
What are hooks? Benefits and caveats.
- 1,266