WordPress-Initialisierungs-Hooks Vorteile und häufige Fehler

Bei der Programmierung ist die Initialisierung von Daten wichtig, da hier die Voraussetzungen für die Anwendung festgelegt werden, z. B. die Attribute, die erforderlichen Dateien und Daten, die Verbindung zur Datenbank usw..

WordPress selbst hat ein klar definiertes Initialisierungsverfahren. Im Laufe des Seitenlebenszyklus löst WordPress eine Reihe von Aktionen aus, von denen viele in vorherigen Artikeln behandelt wurden. Zu diesem Zweck stellt es eine Reihe von Initialisierungs-Hooks bereit, die natürlich zum Initialisieren der Anwendung verwendet werden, bevor ihre primäre Funktionalität ausgeführt wird.

Als Plugin- und Designentwickler ist es wichtig, die Anwendungsfälle zu verstehen und Häufige Fehler dieser Initialisierungshaken, um Qualitätsanwendungen zu erstellen.

In diesem Artikel werden wir einen Blick auf die Wichtigkeit von WordPress-Initialisierungs-Hooks und deren Verwendung in verschiedenen Szenarien werfen.


Einführung in die Initialisierungs-Hooks

WordPress bietet eine Vielzahl von Hooks, die bei der Plugin- und Theme-Entwicklung verwendet werden können.

Bei einer typischen Seitenanforderung werden alle Aktionshooks in einer bestimmten Reihenfolge ausgeführt. Insbesondere werden alle Hooks ausgeführt, nachdem die Kern-WordPress-Anwendung ihren Ladevorgang abgeschlossen hat.

Daher werden Initialisierungs-Hooks hauptsächlich dazu verwendet, den Prozess in Plugins und Themes zu initialisieren. Lassen Sie uns einen Blick auf die verfügbaren werfen drin Haken in WordPress, in der Reihenfolge ihrer Ausführung:

  • drin wird ausgeführt, nachdem WordPress das Laden beendet hat, aber bevor Header gesendet werden. In der Regel wird dies von Plugins zur Initialisierung ihres Prozesses verwendet.
  • widgets_init wird verwendet, um Sidebar-Widgets der Anwendung zu registrieren. Das register_widgetFunktion wird innerhalb dieses Hooks ausgeführt.
  • admin_init wird als erste Aktion ausgeführt, wenn der Benutzer auf den Admin-Bereich von WordPress zugreift. In der Regel werden hiermit Einstellungen für den Verwaltungsbereich initialisiert.
Neben diesen drei Haken gibt es noch einen anderen Haken admin_bar_init, wird ausgeführt, nachdem die Verwaltungsleiste initialisiert wurde. Der WordPress-Codex enthält keine Erklärung für diesen Hook, und nicht viele Plugins verwenden diesen Hook.

Sie können auch den gesamten WordPress-Action-Hook-Ausführungsprozess im Codex überprüfen.

WordPress führt jeden Hook in einer bestimmten Reihenfolge aus (die Sie im Codex sehen können). Daher ist es wichtig, die Reihenfolge des Auftretens bei der Verwendung der einzelnen Aktionshaken zu berücksichtigen. Berücksichtigen Sie die folgenden Szenarien, um die Unterschiede zu identifizieren.

Definieren admin_init In der drin Haken

Bei Bedarf können wir WordPress-Hooks innerhalb anderer Hooks definieren. In einer typischen Anfrage, drin Haken läuft vor dem admin_init Haken. Versuchen wir also, etwas durch Platzieren auszugeben admin_init in der drin Haken:

 add_action ('init', 'test_init'); Funktion test_init () add_action ('admin_init', 'test_admin_init');  function test_admin_init () echo "Admin Init Inside Init"; 

Nachdem Sie diesen Code ausgeführt haben, erhalten Sie die gewünschte Ausgabe mit Echo Aussage.

Definieren drin In der admin_init Haken

Sehen wir uns den Code und die Ausgabe dieses Szenarios an, bei dem ein früherer Hook innerhalb eines Hooks definiert wird, der später in der Ausführungsreihenfolge erscheint.

 add_action ('admin_init', 'test_admin_init'); Funktion test_admin_init () add_action ('init', 'test_init');  function test_init () echo "Init in Admin-Init"; 

Hier erhalten wir keine Ausgabe - das wird erwartet - weil die drin Hook führt vorher aus admin_init Hook, und somit ist es nicht verfügbar, nachdem Sie das festgelegt haben admin_init Haken.

Wie Sie sehen können, ist es wichtig, die Ausführungsprozedur von Hooks für das Erstellen erfolgreicher Plugins zu verstehen. Die Reihenfolge des Auftretens ist für alle Haken in WordPress wichtig.


Erkunden der drin und admin_init Haken

Unter den Init-Haken, drin und admin_init Es lohnt sich zu erkunden, da diese beiden Haken in vielen Plugins weit verbreitet sind. Die Verwendung anderer Initialisierungshaken ist im Vergleich zu diesen beiden Haken unkompliziert.

Daher werden wir uns die Funktionalität von ansehen drin und admin_init Haken.

Das drin Hook wird in jeder Anfrage für ausgeführt beide das Frontend der WordPress-Site sowie das Backend.

Das admin_init Hook wird ausgeführt nach dem Der Admin-Abschnitt schließt den Ladevorgang ab. Dieser Hook wird also auch bei jeder Anfrage der Admin-Seite ausgeführt. Benutzer müssen angemeldet sein, um diesen Hook nutzen zu können.

Da diese beiden Hooks für jede einzelne Anforderung ausgeführt werden, müssen wir die Funktionalitäten innerhalb der Implementierung dieser Hooks entsprechend planen, da dies die Leistung der Site erheblich beeinflussen kann.

Wie benutzt man drin Haken

Im Allgemeinen sind Initialisierungs-Hooks in den meisten vorhandenen WordPress-Plugins verfügbar. Sie sind für die Verwaltung ihrer Verarbeitung unerlässlich.

WordPress definiert nicht, was wir einschließen sollen und was nicht. Daher können Entwickler kleinere Fehler machen, was wiederum zu einem erheblichen Leistungsabfall führen kann. In diesem Abschnitt werden wir untersuchen, wie wir beides effektiv nutzen können drin und admin_init Haken.

Werfen wir einen Blick auf die Best Practices bei der Verwendung von Init-Hooks.

Das drin Haken

  • Registrieren von benutzerdefinierten Beitragstypen - WordPress empfiehlt die Verwendung der drin Haken zum Registrieren neuer benutzerdefinierter Beitragstypen.
  • Initialisieren Sie Ihre Plugin-Konfigurationen und Einstellungen - Plug-In-Konfigurationen und -Einstellungen müssen in jeder Anfrage definiert werden. Daher ist es eine gute Praxis, sie in diesen Hook einzubinden.
  • Zugriff auf vom Benutzer übermittelte Daten (mithilfe von $ _GET und $ _POST) - Wir können vom Benutzer übermittelte Daten ohne Aktionen abfangen, es wird jedoch empfohlen, die drin Haken, da es die Ausführung in jeder Anforderung garantiert.
  • Neue Umschreiberegeln hinzufügen - Wir können neue Regeln für das Umschreiben definieren drin Beachten Sie jedoch, dass diese neuen Regeln erst wirksam werden, wenn wir die Umschreiberegeln bereinigen.
  • Hinzufügen oder Entfernen von benutzerdefinierten Aktionen - Plugins enthalten viele benutzerdefinierte Aktionen zur Erweiterung der Funktionalität. Es wird Szenarien geben, in denen wir neue benutzerdefinierte Aktionen hinzufügen und vorhandene entfernen müssen. In solchen Fällen ist es wichtig, diese Aktivitäten innerhalb von zu implementieren drin Haken.
  • Laden Sie die Plugin-Textdomäne - WordPress bietet mehrsprachige Unterstützung und daher dürfen wir die Datei mit den übersetzten Strings laden. Dies sollte auch in der drin Haken.

Das admin_init Haken

  • Zugangskontrolle - Sie müssen unbedingt die Berechtigungen der angemeldeten Benutzer überprüfen, bevor Sie jedem Benutzer Zugriff auf eine bestimmte Gruppe von Funktionen oder Funktionen gewähren. admin_init ist die erste Aktion, die im Admin-Bereich ausgeführt wird, sodass wir sie zur Verwaltung der Zugriffssteuerung verwenden können.
  • Neue Einstellungen hinzufügen - Wir können diesen Haken verwenden, um neue Einstellungsseiten oder Einstellungen in das vorhandene WordPress-Einstellungsfenster aufzunehmen.

Es gibt viele andere mögliche Implementierungen mit diesen Hooks, aber diese Features haben eigene Hooks und es ist nicht notwendig, die Initialisierungs-Hooks zu verwenden.

Häufige Fehler bei der Verwendung von Initialisierungshaken

Häufig finden wir Szenarien, in denen Entwickler die Verwendung der Initialisierungs-Hooks falsch verstehen. Unsachgemäße Verwendung dieser Haken kann zu schwerwiegenden Leistungsproblemen führen (sowie zu minderwertigen Plugins)..

Identifizieren wir die häufigsten Fehler und wie man sie vermeiden kann:

  • Flushing-Regeln neu schreiben - Dies ist ein ressourcenintensiver Vorgang, bei dem alle Umschreiberegeln gelöscht und neu angeordnet werden, um neue hinzuzufügen und unnötige Regeln zu entfernen. Viele Entwickler leeren die Regeln für das Umschreiben drin Aktionen und enden in jeder Anforderung unnötigen Performance-Overhead. Wir sollten eine Möglichkeit zum manuellen Löschen der Regeln zum Umschreiben mithilfe einer Schaltfläche oder zum Löschen der Regeln für seltene Aktivitäten wie das Speichern von Plugin-Einstellungen einrichten.
  • Zugriff auf die Datenbank - Für den Zugriff auf die Datenbank ist dies ein Muss, um verschiedene Funktionen bereitzustellen. Es ist jedoch wichtig, unnötige Datenbankaufrufe in Initialisierungs-Hooks zu vermeiden, da diese bei jeder Anforderung ausgeführt werden. Zu diesem Zweck ist es ideal, Datenbank-Hooks in funktionsspezifischen Hooks zuzuweisen, um einen erheblichen Performance-Overhead zu vermeiden.
  • Upgrade-Routinen ausführen - Plugins benötigen eine Aktualisierungsroutine, um die Funktionen für neue Versionen zu aktualisieren. Im Allgemeinen verwenden Entwickler Init-Hooks, um Plugin-Versionen und -Einstellungen zu überprüfen, bevor der Aktualisierungsvorgang ausgeführt wird. Wir können den Benutzern das Upgrade des Plugins ermöglichen, indem wir einen benutzerdefinierten Bildschirm bereitstellen, anstatt jede Anfrage automatisch zu prüfen.
  • Verwenden von Init-Hooks anstelle von funktionsspezifischen Hooks - Dies ist der häufigste Fehler, den viele Entwickler gemacht haben. In WordPress gibt es eine Vielzahl von Haken, die auf unterschiedliche, einzigartige Funktionen abzielen. Es ist wichtig, funktionsspezifische Hooks zu verwenden, um Konflikte zu vermeiden und den Code erweiterbar zu machen. Haken wie drin und admin_init kann anstelle von spezifischen Hooks verwendet werden, so dass Entwickler diese normalerweise verwenden, ohne dass sie deren volle Wirkung kennen. Einige der häufigsten Szenarien, in denen Entwickler verwenden drin und admin_init Haken anstelle der empfohlenen Haken sind wie folgt:
    • admin_menu - Wir können Menüseiten mit hinzufügen add_menu_page Funktion. Es wird empfohlen zu verwenden admin_menu Hook zum Erstellen von Admin-Seiten. Aber viele Entwickler verwenden admin_init Haken, wie es nach ausgeführt wird admin_menu Haken.
    • wp_enqueue_scripts - Es wird empfohlen, Stile und Skripts hinzuzufügen wp_enqueue_scripts Haken. Aber viele Entwickler verwenden wp_enqueue_script in der drin Hook zum Laden von Skripten und Stilen.

Es gibt eine Reihe ähnlicher Situationen, in denen Entwickler einen allgemeinen Init-Hook anstelle eines funktionsspezifischen Hooks verwenden. Dies sollte nach Möglichkeit verhindert werden.


Vorwärts bewegen mit Initialisierungs-Hooks

WordPress-Initialisierungs-Hooks spielen eine wichtige Rolle bei der Plugin- und Theme-Entwicklung. Viele Entwickler missbrauchen die Hooks, wodurch unnötiger Performance-Overhead entsteht. In diesem Artikel haben wir die korrekte Verwendung dieser Haken sowie häufige Fehler und deren Vermeidung beschrieben.

Jetzt können wir dieselbe Technik auch auf spezifische benutzerdefinierte Hooks anwenden. Viele fortgeschrittene Plugins verwenden eigene Aktionshaken, um sie erweiterbar zu machen. Für solche Plugins können wir Plugin-spezifische Init-Hooks definieren, damit sich die Entwickler auf die Initialisierungsaufgaben für vordefinierte Hooks konzentrieren können, anstatt sie überall zu verwenden.

Fühlen Sie sich frei, um Ihre Erfahrungen mit der ordnungsgemäßen Verwendung von Init-Hooks sowie mit Fehlern bei der Verwendung von Initialisierungs-Hooks zu teilen. Ich freue mich darauf zu sehen, was Sie in den Kommentaren teilen müssen!