it-swarm.com.de

Richtige Möglichkeit zum Ändern des Plugins

Was ist der beste Weg, um ein Plugin zu modifizieren? Ich möchte häufig kleine Änderungen an einer oder zwei Funktionen innerhalb eines großen Plugins vornehmen. Dies 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 in Ruhe lassen und meine Änderungen an anderer Stelle vornehmen, ähnlich wie bei Themen und untergeordneten Themen. Kann ich ein Plugin erstellen, das das übergeordnete Plugin erfordert und dieses überschreibt?

14
Mike Wheaton

Meiner Meinung nach besteht der beste Ansatz darin, entweder das Plugin so zu konfigurieren, dass Ihre Änderungen beibehalten werden, oder Patches an den Plugin-Entwickler zu senden, damit Ihre Änderungen Teil des ursprünglichen Plugins werden.

Das Erstellen eines "Child Plugins" ist wirklich nicht einfach. Das "Child Theme" -Konzept gilt wirklich für die Vorlagendateien , die verwendet werden, mehr als für die Theme-Funktionen (und tatsächlich wird die functions.php -Datei sowohl von Parent als auch Child geladen, was Probleme verursacht falsch codierte functions.php Dateien im Child oder Parent Theme).

7
Chip Bennett

Der "richtige" Weg hängt natürlich vom Plugin ab. Einige Plugins sind einfacher zu bearbeiten als andere, aber die meisten Plugins können tatsächlich von anderen Plugins geändert werden.

Wenn ein Plugin beispielsweise eine Funktion hat, die mit einer Aktion in WordPress verknüpft ist, können Sie ganz einfach ein anderes Plugin erstellen, das diese Funktion mit remove_action deaktiviert und stattdessen Ihre Ersatzfunktion hinzufügt. Mit dieser Methode können Sie einzelne Funktionen in Plugins durch Ihre eigenen geänderten Versionen ersetzen, ohne das ursprüngliche Plugin zu ändern.

Dasselbe Konzept funktioniert natürlich mit Filtern.

7
Otto

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önnte auch das Original installiert, aber nicht aktiviert werden, sodass Sie weiterhin Benachrichtigungen 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, e.g.: 1.0
Author: Name Of The Plugin Author
Author URI: http://URI_Of_The_Plugin_Author
License: A "Slug" license name e.g. GPL2
*/
?>
4
Chris_O

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

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

Dann mache ich einfach eine Verzweigung und übertrage meine Änderungen dort.

Wenn das Plugin upstream aktualisiert wird, ziehe ich es einfach aus dem SVN-Repo und füge es in meinen benutzerdefinierten Zweig ein.

2
scribu

Dies ist relativ einfach, wenn sich das Plugin aufgrund der Verteilung von Git in der Git-Quellcodeverwaltung befindet, sich jedoch viele WordPress-Plugins (und alle im offiziellen Repository) in Subversion befinden. Ich verwende Vendor Branches und svn_load_dirs.php, wenn ich wirklich ein Plugin modifizieren muss, aber dies erfordert einen einigermaßen 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 anzuwenden.

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

2