Init WordPress Hook

Der Init Hook wird dafür genutzt grundsätzliche Dinge in euren Plugins zu initialisieren. In fast jedem Plugin kommt daher dieser Hook vor.

Bubble Phase:

Dieser Hook wird recht zeitig durchlaufen. Davor werden lediglich Sprachdateien und die Installierten Plugins geladen.
Damit sind kaum Änderungen durch andere PLugins vor diesem Hook vorhanden.

Einsatzgebiet:

Er wird verwendet um Grundeinstellungen eurer Plugins an WordPress zu übermitteln.
Darunter Fallen beispielsweise:

  • Custom Post Types
  • Shortcodes
  • Lade der Textdomain des Plugin
  • weitere Stati für Posts
  • Änderungen am Editor
  • uvm

Dafür sollte Init nicht genutzt werden

  • Flush der Rewrite Rules

    Die Rewrite Rules sollte entweder selbst über Aufruf des Einstellungen -> Permalink aufgefrischt werden oder bei der Installation oder Deinstallation. Jedoch sollte niemals im Init eine solche Funktion ausgeführt werden. Das Anpassen der Url Struktur kann aufwändig sein und die Geschwindigkeit stark beeinträchtigen.
    Außerdem gibt es keinen mir bekannten vernünftigen Grund bei jedem Seitenaufruf die Url Struktur neu zu generieren.

  • Datenbank aufrufe

    Aufrufen der Datenbank sollte weitgehendst vermieden werden. Nicht für jeden Aufruf sind immer alle Funktionen notwendig. Kapselt diese Aufrufe in Funktionen und prüft vor dem Aufruf ob die Daten wirklich benötigt werden. Wiederkehrende Daten können alternativ in einer Session abgelegt werden.

  • Ausführen von Updates

    WordPress unterstützt keine Cron Jobs (Regelmäßige Aufrufe von Dateien), WordPress bietet jedoch ein internes System für solche Aufgaben an. Dabei wird bei jedem Aufruf geschaut ob Beispielsweise ein Update ansteht. Update Funktionen sollten daher nicht im Init geprüft werden.

  • Init statt speziellem Hook nutzen

    Es gibt mehr als 1000 Hooks und Filter, jeder hat seine spezielle Aufgabe. Der Init Hook wird oft für allgemeine Aufgaben missbraucht. Das Einbinden von Javascript oder Css Dateien gehört zu einer dieser Taten.
    Für solche Dinge gibt es ausgewählte Hooks und diese sollte dazu auch genutzt werden.

Definition

Quellcode:

Der Quellcode ist unabhängig ob nun Plugin oder Functions.php
Als Beispiel erstelle ich ein Custom Post Type.

Erklärung:

Zum Init Hook gehört nur wenig Erklärung. Er ist der Platz um WordPress mit den zusätzlichen Funktionen bekannt zu machen.
Dazu zählen Funktionen die auch außerhalb eures Plugins Einfluss nehmen. Custom Posttype oder individelle Post_status Einstellungen.
Da er keine Parameter mit sich bringt muss auch kein Return definiert werden.