プラグインを変更する適切な方法


15

プラグインを変更する最良の方法は何ですか?大規模なプラグイン内の1つまたは2つの機能に小さな変更を加えたいことがよくあります。これは簡単に行えますが、コメントを使用して変更をマークし、更新後にプラグインを再度変更する必要があります。理想的には、プラグインをそのままにして、テーマや子テーマと同じように、他の場所で変更を加えたいと思います。親プラグインを必要とし、それをオーバーライドするプラグインを作成できますか?


1
[ 変更せずに拡張]をチェックします。私はこれが実際に優れたソリューションだと思います。詳細については、このリンクをチェックしてください- カスタマイズするには右の方法WordPressのプラグイン
Eugineジョセフ

回答:


7

私見、最良のアプローチは、変更を維持するためにプラグインを分岐するか、プラグイン開発者にパッチを提出して、変更を元のプラグインの一部にすることです。

「子プラグイン」の作成は本当に簡単ではありません。「子テーマ」の概念は、テーマ関数よりも使用されるテンプレートファイルに実際に適用されます(実際、functions.php親と子の両方からのファイルが読み込まれ、子または親のいずれかの不適切にコード化されたファイルで問題発生しfunctions.phpます)テーマ)。


私が行っている変更の種類はサイト固有であるため、パッチをフォークまたは送信することは適切ではないと思います。プラグインのより一般的な改善のために、これらを忘れないでください。
マイク

しかし、基本的にフォークはあなたがすでにしていることです。基本的に、それらはあなたのオプションです:fork、またはpatch。@Chris_Oは、分岐したプラグインを維持しながら、アップストリームから自動更新を取り込むことができる良い方法を提供します。
チップベネット

7

「正しい」方法は明らかにプラグインに依存します。一部のプラグインは他のプラグインよりも編集が簡単ですが、実際にはほとんどのプラグインは他のプラグインによって変更できます。

たとえば、プラグインにアクションでWordPressにフックされた関数がある場合、remove_actionでその関数をアンフックし、代わりに置換関数を追加する別のプラグインを作成するのは簡単です。この種の方法を使用すると、元のプラグインを変更せずに、プラグインの個々の機能を独自の変更バージョンに置き換えることができます。

もちろん、同じ概念がフィルターでも機能します。


4

最良の方法は、クローンを作成し、ヘッダーのプラグイン名を変更し、ディレクトリ名を変更することです。この方法では、元のソフトウェアをインストールすることもできますが、アクティブ化しないため、更新がリリースされたときにアラートを受け取ることができます。

<?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
*/
?>

これには、変更を見つけるために新しいバージョンのプラグインを使用し(バージョン比較ツールが役立つと思います)、それらの変更をカスタムプラグインにコピーする必要があります。プラグインをダウンロードし、SVNを使用して変更をカスタムバージョンにマージできると思います。
マイク

2
プラグインページの開発ログリンクには、diffファイルへの直接リンクがあります。たとえば、W3 Total Cache
-Chris_O

3

プラグインがGitの分散された性質のためにGitソース管理下にある場合、これは比較的簡単ですが、多くのWordPressプラグイン(および公式リポジトリ内のすべて)はSubversionにあります。プラグインを本当に変更する必要がある場合は、ベンダーブランチとsvn_load_dirs.php を使用しますが、これにはSubversionでかなり高い快適レベルが必要です。

プラグインがリポジトリを公開しない場合、自分でGitリポジトリに変換し、新しいバージョンを手動で適用することをお勧めします。

最終的に、バージョン管理システムは、新しいアップストリームバージョンに変更を再適用する唯一の正しい方法です。


3

Annika Backstromの答えには同意しますが、私が好む解決策を共有したいと思います。

ほとんどのプラグインはsvnの下にあるため、git-svnというツールを使用してgitミラーを作成します。

次に、ブランチを作成し、そこで変更をコミットします。

プラグインがアップストリームで更新されると、svnリポジトリからプルし、カスタムブランチにマージします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.