WordPress bietet eine Sammlung von Kernfunktionen, die als steckbare Funktionen bezeichnet werden. Wie der Name vermuten lässt, können wir diesen Funktionen benutzerdefinierten Code hinzufügen, um ihre Funktionalität gemäß unseren Anforderungen zu überschreiben und zu verbessern.
Die wahre Stärke steckbarer Funktionen besteht in der Möglichkeit, benutzerdefinierte Funktionen zu deklarieren und für andere Entwickler und Designer steckbar zu machen. Es ist eine weit verbreitete Technik zur Erweiterung der Funktionalität und der Features der untergeordneten WordPress-Designs.
In diesem Artikel werden wir das Konzept steckbarer Funktionen und ihre Verwendung untersuchen.
Steckbare Funktionen im WordPress-Kern befinden sich im pluggable.php Datei in der WP-Includes Verzeichnis. Die vollständige Liste der steckbaren Funktionen finden Sie unter Steckbare Funktionen im WordPress-Codex. Zuerst zeige ich Ihnen eine Liste steckbarer Funktionen, die in fast jeder WordPress-Website verwendet werden können.
wp_logout
- wird verwendet, um den Benutzer vom System abzumelden. Sie können Aufgaben wie das Entfernen benutzerdefinierter Sitzungsvariablen und das Aufzeichnen der Benutzersitzungszeit in der Datenbank ausführen, indem Sie eine benutzerdefinierte Datei schreiben wp_logout
Funktion.wp_mail
- ist die beliebteste steckbare Funktion von allen. Sie können diese Funktion ändern, um eine spezielle E-Mail-Vorlage für Ihre E-Mails oder andere Eigenschaften zum Senden von E-Mails zu verwenden.wp_new_user_notification
- kann verwendet werden, um das Format der E-Mail anzupassen, die gesendet wird, nachdem ein neuer Benutzer im System registriert wurde.auth_redirect
- wird verwendet, um einen Benutzer zur Anmeldeseite umzuleiten, wenn der Benutzer noch nicht angemeldet ist. Mit dieser Funktion können Sie dem Benutzer eine Meldung anzeigen, dass der Benutzer für den Zugriff auf die angeforderte Seite authentifiziert werden soll.wp_password_change_notification
- wird verwendet, um eine E-Mail zu senden, wenn das Passwort geändert wird. Mit dieser Funktion können Sie dieser E-Mail weitere Informationen hinzufügen.Nun wollen wir sehen, wie wir eine benutzerdefinierte Funktion in eine der oben genannten Funktionen integrieren können. Ich werde verwenden wp_logout
Hier. Zuerst musst du die öffnen pluggable.php Datei und kopieren Sie den Inhalt der wp_logout
Funktion. Erstellen Sie dann eine neue Funktion in Ihrer Datei mit demselben Namen und fügen Sie den Code ein. Nachfolgend ist die Standardfunktion für wp_logout
:
if (! function_exists ('wp_logout')) / ** * Den aktuellen Benutzer abmelden. * * @since 2.5.0 * / function wp_logout () wp_clear_auth_cookie (); do_action ('wp_logout');
Schauen wir uns nun die überschriebene Version von an wp_logout
Funktion:
if (! function_exists ('wp_logout')) / ** * Den aktuellen Benutzer abmelden. * * @since 2.5.0 * / function wp_logout () remove_sessions (); // Benutzerdefinierter Funktionsaufruf wp_clear_auth_cookie (); do_action ('wp_logout'); function remove_sessions () // Benutzerdefinierte Sitzung und Cookie-Informationen entfernen
Sie können sehen, dass ich das geändert habe wp_logout
Funktion in meinem Plugin und fügte benutzerdefinierten Code hinzu. Dies ist der Prozess, den Sie befolgen müssen, um eine steckbare Funktion zu überschreiben.
Das Wichtigste im obigen Code ist das if (! function_exists ('wp_logout'))
Linie oben definiert. Diese Zeile macht Ihre Funktion steckbar, indem geprüft wird, ob eine Funktion aufgerufen wurde wp_logout
existiert und lädt die benutzerdefinierte Funktion. Andernfalls wird die Standardfunktion in geladen pluggable.php.
Sie fragen sich vielleicht, warum die Funktion im Plugin anstelle der Standardfunktion aufgerufen wird, auch wenn beide Funktionen mit dem Präfix versehen sind function_exists ('wp_logout')
Bedingung. Das liegt an der Reihenfolge der Ausführung der WordPress-Aktion, die ich später erklären werde.
function_exists
Überprüfen Sie die benutzerdefinierten Funktionen?Ja, es ist möglich. In den folgenden beiden Szenarien treten jedoch Probleme auf, wenn Sie die Prüfung auslassen.
Hier besteht das Risiko, dass jeder Ihre Funktion ohne Ihr Wissen außer Kraft setzen kann. Ich denke, Sie sollten immer die Zustandsprüfung vor der Funktion durchführen lassen, um Konflikte zu vermeiden.
Jetzt wissen Sie, wie Sie mit steckbaren Funktionen arbeiten. Mal sehen, wo wir die steckbaren Funktionen platzieren können.
Ich habe viele Entwickler gesehen, die steckbare Funktionen enthalten Functions.php Datei eines Themas und nicht die Ergebnisse, die sie erwarten. Sie sollten über die WordPress-Aktionsreihenfolge verfügen, bevor Sie steckbare Funktionen erstellen.
Die vollständige Ausführungsprozedur finden Sie unter Action Reference im WordPress-Codex. Ich werde die notwendigen Aktionen für meine Erklärungen im Bildschirm unten extrahieren.
Das obige Bild zeigt den allgemeinen Ablauf der WordPress-Aktion. Dies kann je nach Art der in Ihrem Plugin verwendeten Funktionalität variieren. Diese Aktionen können während einer Anforderung mehrmals aufgerufen werden.
Sie sollten deutlich sehen, dass Plugins zuerst verwendet werden müssen, gefolgt von aktiven Plugins und Plug-In-Funktionen. Zum Schluss wird das Theme geladen. Entsprechend dem Prozess können wir also folgende Schlussfolgerungen zur Erstellung steckbarer Funktionen treffen.
Jetzt wissen Sie, wo Sie Ihre steckbaren Funktionen einsetzen können. Die nächste Frage ist, was passiert, wenn zwei oder mehr Plugins dieselbe Kernfunktion überschreiben. Es liegt außerhalb Ihrer Kontrolle, da das erste aktivierte Plugin Vorrang vor anderen hat. Wenn also vor dem Plugin ein anderes Plugin aktiviert wird, wird Ihre Plug-In-Funktion nicht verwendet.
Sie können die Reihenfolge der aktiven Plugins mit dem Wert von anzeigen aktive_plugins
Geben Sie die WordPress-Optionstabelle ein.
Durch das Überschreiben der zentralen steckbaren Funktionen können wir die Standardfunktionalität erweitern und daher in bestimmten Szenarien sehr nützlich sein. Der eigentliche Wert steckbarer Funktionen liegt jedoch in der Erstellung eigener steckbarer Funktionen. Diese Funktionen haben keine Beziehung zu den Kernfunktionen.
Im Allgemeinen werden in Ihren WordPress-Designs neue steckbare Funktionen definiert, um die Funktionalität zu erweitern und untergeordneten Designentwicklern zu ermöglichen, sie zu überschreiben. Schauen wir uns also an, wie wir benutzerdefinierte, steckbare Funktionen definieren können.
Zuerst müssen Sie die Funktion mit einer Existenzprüfung erstellen, wie wir es bei den Kernfunktionen getan haben. Der folgende Code zeigt eine steckbare Beispielfunktion für Ihr Design:
if (! function_exists ('change_header')) Funktion change_header () // Code zum Ändern des Design-Headers
Früher habe ich erwähnt, dass in Themendateien keine steckbaren Funktionen erstellt werden sollen, da dies mit den steckbaren Standardfunktionen zusammenhängt. In diesem Szenario erstellen wir neue steckbare Funktionen, sodass es keine Abhängigkeiten gibt. Daher hat der Aktionsausführungsprozess im Allgemeinen keine Auswirkungen.
Wir erstellen untergeordnete Designs, damit Entwickler und Designer das Design und die Funktionen des übergeordneten Designs erweitern können, ohne den Quellcode des ursprünglichen Designs zu ändern. Die grundlegende Form der Erweiterung kann bereitgestellt werden, indem das CSS des übergeordneten Designs innerhalb des untergeordneten Designs dupliziert und die erforderlichen Anpassungen vorgenommen werden.
Abgesehen von CSS-Styles können Designs nützliche Funktionen enthalten, z. B. Shortcodes, Seitenvorlagen und benutzerdefinierte Filter, um Gestaltungselemente bereitzustellen. Als Theme-Entwickler müssen wir maximale Funktionalität für Child-Theme-Entwickler bereitstellen. Wir können steckbare Funktionen effektiv verwenden, damit untergeordnete Designentwickler diese Funktionen ändern können.
Pluggable-Funktionen in Themes werden normalerweise von untergeordneten Theme-Entwicklern erweitert. Plugin-Entwickler können jedoch auch die Plug-In-Funktionen in ihren Plugins erweitern. Nehmen Sie an, Sie haben die pluggable-Funktion sowohl im untergeordneten Thema als auch im Plugin überschrieben. In solchen Fällen haben Plugin-Funktionen Vorrang vor untergeordneten Themenfunktionen.Stellen Sie daher sicher, dass Sie Ihre vorhandenen Designfunktionen bei Bedarf in steckbare Funktionen konvertieren, um eine maximale Erweiterbarkeit zu ermöglichen.
Mit dem Konzept der steckbaren Funktionen von WordPress können Sie die Funktionalität Ihrer Designs und Plugins erweitern. Generell ist es vorzuziehen, WordPress-Kernfunktionen in Plugins und Ihre eigenen Plug-in-Funktionen in Themes zu überschreiben. Stellen Sie sicher, dass Sie sich mit der Ablaufsequenz der WordPress-Aktion vertraut machen, bevor Sie steckbare Funktionen erstellen, um Konflikte zu vermeiden.