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