Richtige Möglichkeit zum Ändern des Plugins

Was ist der beste Weg, um ein Plugin zu ändern? Ich möchte häufig kleine Änderungen an einer oder zwei functionen innerhalb eines großen Plugins vornehmen. Das ist einfach, aber ich muss Kommentare verwenden, um meine Änderungen zu markieren und das Plugin nach einem Update erneut zu ändern. Im Idealfall möchte ich das Plugin alleine lassen und meine Änderungen anderswo vornehmen, ähnlich wie bei Themen und untergeordneten Themen. Kann ich ein Plugin erstellen, das das Eltern-Plugin benötigt und es überschreiben wird?

Solutions Collecting From Web of "Richtige Möglichkeit zum Ändern des Plugins"

IMHO, ist der beste Ansatz, entweder das Plugin mit dem Fork zu versehen, um die Änderungen zu übernehmen, oder Patches an den Plugin-Entwickler zu senden, damit Ihre Änderungen Teil des ursprünglichen Plugins werden.

Ein “Child Plugin” zu erstellen ist wirklich nicht einfach. Das “Child Theme” -Konzept gilt wirklich für die Template-Dateien , die verwendet werden, mehr als die Theme-functionen (und tatsächlich wird die functions.php Datei von Parent und Child geladen, was Probleme bei falsch codierten functions.php Dateien verursacht entweder im Child- oder im Parent-Theme).

Der “richtige” Weg hängt natürlich vom Plugin ab. Einige Plugins sind leichter zu bearbeiten als andere, aber die meisten Plugins können tatsächlich durch andere Plugins modifiziert werden.

Zum Beispiel, wenn ein Plugin eine function hat, die mit einer Aktion in WordPress eingebunden ist, dann ist es eine einfache Sache für Sie, ein anderes Plugin zu erstellen, das diese function mit remove_action abhookt und dann stattdessen Ihre Ersatzfunktion hinzufügt. Mit dieser Methode können Sie einzelne functionen in Plugins durch eigene modifizierte Versionen ersetzen, ohne das ursprüngliche Plugin zu ändern.

Das gleiche Konzept funktioniert natürlich mit Filtern.

Der beste Weg wäre, es einfach zu klonen und den Plugin-Namen in der Kopfzeile zu ändern und den Verzeichnisnamen zu ändern. Auf diese Weise können Sie auch das Original installieren, aber nicht aktivieren, so dass Sie immer noch Warnungen erhalten, wenn Updates veröffentlicht werden.

 < ?php /* Plugin Name: Name Of The Plugin Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates Description: A brief description of the Plugin. Version: The Plugin's Version Number, eg: 1.0 Author: Name Of The Plugin Author Author URI: http://URI_Of_The_Plugin_Author License: A "Slug" license name eg GPL2 */ ?> 

Dies ist relativ einfach, wenn das Plugin aufgrund der verteilten Natur von Git unter Git-Versionskontrolle steht, aber viele WordPress-Plugins (und alle im offiziellen Repository) sind in Subversion. Ich benutze Vendor Branches und svn_load_dirs.php, wenn ich wirklich ein Plugin modifizieren muss, aber das erfordert einen relativ hohen Komfort mit Subversion.

Wenn das Plugin kein Repository zur Verfügung stellt, würde ich empfehlen, es selbst in ein Git-Repository umzuwandeln und neue Versionen manuell zu installieren.

Am Ende sind Versionskontrollsysteme die einzige vernünftige Möglichkeit, Änderungen an neuen Upstream-Versionen erneut anzuwenden.

Ich stimme Annika Backstroms Antwort zu , aber ich möchte meine bevorzugte Lösung teilen.

Da die meisten Plugins unter SVN liegen, benutze ich ein Tool namens git-svn, um einen Git-Spiegel zu erstellen.

Dann mache ich einfach einen Zweig und begehe meine Änderungen dort.

Wenn das Plugin upstream upgedated wird, ziehe ich einfach das svn repo und füge es in meinen benutzerdefinierten Zweig ein.