Ich erstelle gerne ein Plugin für Kinder.
Erklärung: -
Ich habe ein übergeordnetes Plugin mit dem Namen X. Dies funktioniert unabhängig (wie andere vorhandene Plugins).
Jetzt habe ich beschlossen, dem Plugin X einige zusätzliche Funktionen hinzuzufügen (stellen Sie es sich als Upgrade vor). Ich möchte also zusätzliche Funktionen mit einem anderen Plugin Y erstellen, das von X abhängt (und von X erbt).
Dieses Plugin Y funktioniert nicht mit Plugin X.
Wie kann ich das machen?
der beste Weg, dies zu tun, besteht darin, Ihr X-Plugin mit eigenen Hooks für Aktionen und Filter zu versehen, damit neue Plugins (in Ihrem Fall Y) mit den Funktionen und Daten von Plugin X interagieren können. Das Definieren eigener Hooks ist relativ einfach und unkompliziert.
aus dem Kodex:
Aktionen sind die Haken, die der WordPress-Kern an bestimmten Punkten während der Ausführung oder beim Eintreten bestimmter Ereignisse startet. Ihr Plugin kann angeben, dass eine oder mehrere seiner PHP -Funktionen an diesen Punkten mithilfe der Aktions-API ausgeführt werden.
beispiel eines neuen Aktions-Hooks:
Function whatever(){
//regular stuff you do normally
do_action('Name-Of-Your-Action-hook', $args1,$args2)
//regular stuff you do normally
}
Jetzt können wir mit dieser Funktion interagieren und ihre Argumente ($ args1, $ args2) mit dem 'Name-Of-Your_hook'-Hook verwenden
add_action('Name-Of-Your-Action-hook','hook_function_callback');
aus dem Kodex:
Filter sind die Haken, die WordPress startet, um Text verschiedener Arten zu ändern, bevor er der Datenbank hinzugefügt oder an den Browser-Bildschirm gesendet wird. Ihr Plugin kann festlegen, dass eine oder mehrere seiner PHP -Funktionen ausgeführt werden, um bestimmte Textarten zu diesen Zeitpunkten mithilfe der Filter-API zu ändern.
beispiel eines neuen Filterhakens:
Function whatever(){
//regular stuff you do normally
$output = apply_filters('Name-Of-Your-Filter-hook', $output,$args1,$args2)
//regular stuff you do normally
}
Jetzt können wir mit dieser Funktion interagieren, $ output use und seine Argumente ($ args1, $ args2) mit dem 'Name-Of-Your-Filter-Hook'-Hook filtern
add_filter('Name-Of-Your_hook','hook_function_callback');
Ein gutes Beispiel dafür wäre Kontaktformular 7
und viele weitere, die alle (die meisten) Plugins sind, die die Funktionalität von Contact Form 7 basierend auf seinen Hooks erweitern.
Machen Sie einige Haken in Ihrem Eltern-Plugin, an die das Kind-Plugin ihre eigene Funktion anhängen kann. Schließen Sie auch das untergeordnete Plugin in if(function_exists('parent-plugin-function'))
oder class_exists
ein, wenn es eine Klasse ist.