Plugin mit Abhängigkeiten erstellen

21

Ich versuche die Funktionalität eines anderen Plugins zu erweitern. Ich muss Daten von ihm in ein Array übertragen, um sie auf andere Weise als das ursprüngliche Plugin zu verwenden. (In diesem Fall WPMUDev Categories and Listings Plugins). Gibt es etwas im Kodex? Wie kann ich ein Plugin erstellen, das andere Plugins-Funktionen verwenden kann? Kann ich sie erweitern und die Funktionen der übergeordneten Knoten erstellen? Ich bin nicht sicher, ob diese Plugins Klassen oder nur gerade Funktionen verwenden.

Ich versuche nur, Daten aus dem Plugin in ein Sidebar-Widget (in einem Formularoptionselement) zu übertragen, werde dies jedoch möglicherweise auch für den Inhaltsbereich mithilfe benutzerdefinierter Shortcodes verwenden. Im Moment brauche ich nur einen Ort, an dem ich anfangen kann.

DWils
quelle
4
FWIW gibt es ein Trackticket zu diesem Thema core.trac.wordpress.org/ticket/22316
Norcross

Antworten:

22

Ja, es ist möglich, ein Plugin zu erstellen, das ein anderes Plugin erweitert. Hier einige Ideen, wie Sie vorgehen könnten:

  1. Ein Plugin kann seine eigene Aktion einrichten und Hooks filtern (mit dem do_actionapply_filter genau wie der WordPress-Kern und -Funktionen). Wenn das Plugin, auf das Sie abzielen, dies tut, können Sie diese Hooks verwenden, um die Funktionalität zu ändern.

  2. Wenn ein Plugin eine objektorientierte Struktur verwendet, können Sie die Klassen erweitern und auf dem ursprünglichen Plugin aufbauen.

  3. Sie können die in der Datenbank gespeicherten Daten vom Original-Plugin lesen und in Ihrem Plugin-Code verwenden.

  4. Sie können jede Funktion vom Original-Plugin aus aufrufen, nachdem Sie überprüft haben, ob das Plugin aktiv und geladen ist (siehe unten). Beachten Sie nur die Auswirkungen, die die Funktion möglicherweise neben dem zurückgegebenen Wert hat.

Sie müssen überprüfen, ob das Original-Plugin aktiviert ist. Sie könnten die is_plugin_activeFunktion verwenden; Dies funktioniert jedoch nur auf den Admin-Seiten. Alternativ können Sie mit function_existsoder class_existsprüfen, ob eine bestimmte Funktion oder Klasse des Original-Plugins verfügbar ist, die Ihnen anzeigt, dass sie ausgeführt wird.

Denken Sie daran, dass Sie jedes Mal, wenn das ursprüngliche Plugin aktualisiert wird, Ihr Plugin mit der neuen Version testen müssen, um nach neuen Elementen zu suchen, die mit Ihrem Plugin in Konflikt geraten könnten.

Ben Miller - Setzen Sie Monica wieder ein
quelle