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?


  1. Eigener Callback für ein Hook registrieren

  2. Beim Ausführen des Hooks alle Callbacks 
    nach Priorität ausführen

  3. Bei Filter werden Rückgabewerte weitergegeben

Wordpress Hook Funktionen


// Action registrieren add_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

Plugin: 
Wordpress Hook Sniffer

Reference
http://adambrown.info/p/wp_hooks/version/3.5

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

Made with Slides.com