プラグインを修正するための最良の方法は何ですか?私は頻繁に大きなプラグイン内の1つまたは2つの機能に小さな変更を加えたいと思います。これは簡単にできますが、私は自分の変更をマークして更新後にプラグインを修正するためにコメントを使わなければなりません。理想的には、私たちがテーマや子供のテーマを使って行うのと同じように、プラグインを一人にして他の場所に変更を加えたいと思います。親プラグインを必要とし、それを上書きするプラグインを作ることはできますか?
私見、最良のアプローチは、変更を維持するためにプラグインを分岐するか、プラグイン開発者にパッチを提出して、変更を元のプラグインの一部にすることです。
「子プラグイン」の作成は本当に簡単ではありません。 「子テーマ」の概念は、テーマ関数よりもさらに使用されるテンプレートファイルに実際に適用されます(実際、親と子の両方からのfunctions.php
ファイルがロードされ、 does ChildまたはParentテーマの不適切にコード化されたfunctions.php
ファイルに問題を引き起こします)。
「正しい」方法は明らかにプラグインに依存します。他のプラグインよりも編集が簡単なプラグインもありますが、ほとんどのプラグインは実際には他のプラグインによって変更することができます。
たとえば、プラグインがアクションを使ってWordPressにフックされた関数を持っている場合、remove_actionを使ってその関数のフックを解除し、代わりに代わりの関数を追加する別のプラグインを作るのは簡単なことです。この種の方法では、オリジナルのプラグインを変更することなく、プラグイン内の個々の機能を独自の変更バージョンに置き換えることができます。
もちろん、同じ概念がフィルタでも機能します。
最善の方法は、クローンを作成してヘッダーのプラグイン名を変更し、ディレクトリ名を変更することです。この方法では、オリジナルをインストールしてアクティブにしないようにすることもできるので、アップデートがリリースされたときにアラートを受け取ることができます。
<?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
*/
?>
私は Annika Backstromの答えに同意します 、私は私の好みの解決策を共有したいと思います。
ほとんどのプラグインはsvnの下にあるので、私はgitミラーを作るのにgit-svnというツールを使います。
それから私はただブランチを作り、そこで私の変更をコミットします。
プラグインが上流で更新されたら、私はsvnリポジトリから引っ張って私のカスタムブランチにマージします。
プラグインがGitの分散された性質のためにGitソース管理下にある場合、これは比較的簡単ですが、多くのWordPressプラグイン(および公式リポジトリ内のすべて)はSubversionにあります。 ベンダーブランチ とsvn_load_dirs.phpを使用しますreallyプラグインを変更する必要がありますが、これにはかなり高い快適レベルが必要ですSubversionで。
プラグインがリポジトリを公開しない場合、自分でGitリポジトリに変換し、新しいバージョンを手動で適用することをお勧めします。
最終的に、バージョン管理システムは、新しいアップストリームバージョンに変更を再適用する唯一の正しい方法です。