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 ...)

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:

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