Das Einsteigerhandbuch für WordPress-Aktionen und Filter

Bei der professionellen WordPress-Entwicklung müssen Entwickler sowohl die Aktionen als auch die Filter verstehen. Das heißt, es ist wichtig, die WordPress-Hooks zu verstehen.

Einfach ausgedrückt: Hooks geben uns die Möglichkeit, WordPress über eine API in unseren Designs, Plugins und anderen benutzerdefinierten Entwicklungsanwendungen anzupassen, zu erweitern und zu verbessern.

Das Problem ist, dass diese beiden Features von WordPress - die wohl wichtigsten Aspekte bei der Entwicklung der Plattform - entweder weithin missverstanden oder völlig ignoriert werden.

In diesem Beitrag werden wir uns den Lebenszyklus der WordPress-Seite ansehen, die Funktionsweise von Hooks verstehen und die Unterschiede in den Aktionen und Filtern untersuchen, damit wir nicht nur bessere Theme- und / oder Plugin-Entwickler werden, sondern auch ein tieferes Verständnis der Funktionsweise von WordPress.

Hinweis: Dieser Artikel richtet sich speziell an Anfänger. Wenn Sie ein erfahrener Entwickler sind, kann dies eine Auffrischung sein. aber wenn du sind Als Anfänger können Sie Fragen im Kommentarbereich am Ende des Beitrags hinterlassen.


Der WordPress-Seitenlebenszyklus

Bevor wir tatsächlich über die WordPress-Hooks sprechen, ist es wichtig zu verstehen, wie der Lebenszyklus der WordPress-Seite funktioniert.

Ein Seitenlebenszyklus ist nichts anderes als eine Kombination der Ereignisse, die von der Anforderung eines Browsers durch einen Browser bis zu dem Zeitpunkt, zu dem der Server die Seite an den Browser zurückgibt, stattfinden.

Nehmen wir zum Beispiel an, Sie laden eine einzelne Seite. Auf hoher Ebene führt WordPress dann etwa Folgendes aus:

  • Schauen Sie sich die angeforderte Seiten-ID an
  • Fragen Sie die Datenbank nach der Seite nach ihrer ID ab
  • Abfrage der Datenbank nach verknüpften Daten (z. B. Kategorien, Tags, Bilder usw.)
  • Fragen Sie die Datenbank nach den dazugehörigen Kommentaren ab
  • Rückkehr alles der Daten an den Browser

Die Vorlagendateien und die Aufrufe der API-Funktionen sind dann für das Rendern, Gestalten und Positionieren der Daten auf dem Bildschirm verantwortlich.

Das hört sich einfach an, aber wenn Sie über einige der komplexesten Blogs nachdenken, die Sie lesen, oder wenn Sie sogar über einige der von Ihnen geleisteten Arbeiten nachdenken, können Sie verstehen, wie intensiv dieser bestimmte Prozess sein kann.

Natürlich ist dies auch auf der einfachsten Ebene. Dies beinhaltet keine Zwischenspeicherungsmechanismen oder fortgeschrittene Themen, die andere häufig beim Erstellen von WordPress-basierten Projekten behandeln.

Ein beliebter WordPress-Entwickler Rarst - der Typ hinter queryposts.com - hat eine relativ detaillierte Grafik zusammengestellt, die die Kernlast von WordPress zeigt:

Tun nicht entmutigen, wenn Sie dem obigen Diagramm nicht folgen können. Ich habe es hier einfach als Referenz gelegt. Das ultimative Ziel dieser Sitzung ist, dass alle Entwickler es am Ende verstehen können.

Nachdem dies gesagt wurde, ist hier das Wichtigste, was Sie über Hooks während des Ladevorgangs der WordPress-Seite wissen müssen:

Während WordPress eine Reihe von Abfragen ausführt und sich darauf vorbereitet, Daten an den Browser zurückzugeben, werden alle benutzerdefinierten Hooks (dh die Aktionen und Filter) betrachtet, die geschrieben wurden, und die Daten werden durch diese Filter geleitet, bevor Daten zurückgegeben werden der Browser.

An diesem Punkt ist es wichtig, Hooks zu definieren und die Unterschiede zwischen Aktionen und Filtern sowie deren Auswirkungen auf diesen gesamten Lebenszyklus zu untersuchen.


Alles über Haken

WordPress-Hooks beziehen sich auf zwei Dinge - Aktionen und Filter. Wenn Sie sich die Codex-Artikel über Hooks ansehen, wird nur eine kurze Seite angezeigt, die auf die Referenzen für Aktionen und Filter verweist. Genau so sollte es auch sein, weil das ist Was sind die Haken?.

So denken Sie darüber nach:

Hooks ermöglichen es uns, buchstäblich in Teile des WordPress-Seitenlebenszyklus einzuhaken, um Daten abzurufen, einzufügen oder zu ändern, oder sie ermöglichen uns, bestimmte Aktionen im Hintergrund auszuführen.

Ziemlich cool, richtig?

Dazu gibt es zwei Dinge zu verstehen:

  1. Aktionen unterscheiden sich von Filtern.
  2. Sie können nicht einfach einen Haken in einen beliebigen Ausführungspunkt werfen. Es gibt Zeiten, in denen bestimmte Haken feuern, und optimale Zeiten, in denen Sie davon profitieren können.

Lassen Sie uns zunächst Aktionen und Filter definieren und dann prüfen, wann was ausgelöst wird.


Maßnahmen ergreifen

Was sind also Handlungen? Die einfachste Definition lautet: Aktionen zeigen an, dass etwas passiert ist. Das ist es. Aber wie gut ist diese Definition? Und wie können wir das nicht mit Ereignissen verwechseln??

So halte ich es gerade:

Aktionen sind Ereignisse im WordPress-Seitenlebenszyklus, wenn bestimmte Dinge aufgetreten sind - bestimmte Ressourcen werden geladen, bestimmte Funktionen stehen zur Verfügung und je nachdem, wie früh die Aktion stattgefunden hat, müssen noch einige Dinge geladen werden.

Seit wir den WordPress-Seiten-Lifeycle besprochen haben, sind Aktionen im Wesentlichen bestimmte Punkte während des Lebens, in dem Sie Ihre eigenen Funktionen einführen können.

Dies bedeutet, dass Sie die Möglichkeit haben, etwas zu bewirken, während eine Seite geladen wird.

Der Codex bietet a großartig Informationen zu den in WordPress integrierten Aktionen sowie der Reihenfolge, in der sie ausgelöst werden. Lesezeichen, verweisen Sie häufig und lernen Sie dies.

Es ist von grundlegender Bedeutung, um zu lernen, wie WordPress an bestimmten Punkten während der Ausführung und Doing It Right ™ eingehängt wird.

Ein typisches Beispiel: Ich sehe oft, dass Entwickler in die Datenbank einsteigen drin viel zu häufig handeln. Sicher, es gibt eine Zeit, dies zu tun. Aber sagen Sie, Sie wollten etwas tun, bevor Sie die Beiträge erhalten. Dann wäre es sinnvoll, die pre_get_posts Haken eher als drin, Recht?

Das ist warum es wichtig ist, Handlungen zu verstehen.


Alle Dinge filtern

Filter dagegen unterscheiden sich völlig von Aktionen. Ähnlich wie bei Aktionen handelt es sich um ähnliche Punkte, die während des Lebenszyklus der WordPress-Seite auftreten. aber was sie tun ist anders.

So definiere ich Filter:

Filter sind Funktionen, die WordPress an bestimmten Stellen des Seitenlebenszyklus durchläuft. Sie sind in erster Linie dafür verantwortlich, Daten abzufangen, zu verwalten und zurückzugeben, bevor sie an den Browser übertragen oder vom Browser in die Datenbank gespeichert werden.

Nehmen Sie für einen Moment an, dass ein Websitebesucher gerade einen Beitrag lädt. Nach dem, was wir über den Lebenszyklus von WordPress-Seiten verstehen, wird WordPress die Datenbank nach diesem Beitrag abfragen und ihn dann an den Browser zurückgeben. Bevor dies jedoch geschieht, werden die Daten durch die bereits erstellten Filter laufen.

An diesem Punkt greifen die Filter auf die Daten ein, die an sie weitergeleitet werden. Angenommen, Sie möchten am Ende des Inhalts einen kurzen Satz über den Autor anfügen. Dazu müssen Sie eine benutzerdefinierte Funktion mit registrieren der Inhalt filtern Sie Ihren Satz und hängen Sie ihn an den Inhalt an.

Wie dies zu tun, würde den Rahmen dieses Artikels sprengen, aber wir möchten dies in einem zukünftigen Artikel in der Sitzung behandeln.

Genau wie bei Aktionen bietet der Codex eine umfassende Liste verfügbarer Filter. Und ähnlich, Lesezeichen, verweisen Sie häufig und lernen Sie dies.

Sobald Sie sich mit Filtern auskennen, können Sie mit Doing It Right ™ mit dem Abrufen und Serialisieren von Daten beginnen, anstatt die WordPress-API zu umgehen. Es bietet eine leistungsstarke, sehr einfache Möglichkeit, Daten zu bearbeiten.

Das ist warum es wichtig ist, Filter zu verstehen.


Aber wann mache ich… ?

An dieser Stelle stellt sich immer die unvermeidliche Frage.

Wann benutze ich welchen Haken??

Und hier ist der Rat, den ich normalerweise gebe:

  • Verwenden Sie Aktionen, wenn Sie der vorhandenen Seite etwas hinzufügen möchten, z. B. Stylesheets, JavaScript-Abhängigkeiten oder eine E-Mail senden, wenn ein Ereignis aufgetreten ist.
  • Verwenden Sie Filter, wenn Sie Daten bearbeiten möchten, die aus der Datenbank stammen, bevor Sie zum Browser gehen oder vom Browser kommen, bevor Sie in die Datenbank gelangen.

Das ist es! Leicht genug, hoffe ich.


Schlussfolgerungen

An dieser Stelle empfehle ich dringend, die folgenden Ressourcen zu überprüfen:

  • Die Plugin-API, die auch einige großartige Informationen enthält, die auch in der Theme-Entwicklung verwendet werden können.
  • Die Aktionsreferenz
  • Die Filterreferenz

Wir planen, in der Sitzung mehrere Beiträge zu diesem Artikel sowie in Pippins Artikel über erweiterbare Plugins zu veröffentlichen. Vergewissern Sie sich, dass Sie an dieser Sitzung teilnehmen, um weitere Informationen zu Hooks zu erhalten.