12

WordPress ユーザーが作成したプラグインを変更するためのベストプラクティスは何ですか?

たとえば、Contact Form 7プラグイン内で変更したいコード行がいくつかあります。この関数はfunction wpcf7_ajax_json_echo()と呼ばれ、次の場所にあります。

wp-content > plugins > contact-form-7 > includes > controller.php

もちろん、そのファイル内のコードを変更して完了することもできますが、そのプラグインを更新したいときに、変更が上書きされる可能性があるため、うまくいきません。

functions.php ファイルを介してこれを実現する必要があることはわかっていますが、これを実現する方法がわかりません。また、その特定の関数は 100 行以上のコードであり、プラグインの作成者が将来その関数の何かを更新することを選択する可能性が高いため、その関数全体を上書きしたくないと思います。

functions.php ファイルを介してその関数内の数行を変更する最もクリーンな方法を知っている人はいますか?

ありがとうございました!

4

3 に答える 3

7

コアを変更することはお勧めしません。しかし、あなたは少しピクルスになっています。

あなたはできる:

  • プラグインで直接機能コードを更新します
  • プラグインから現在の関数コードをコピーし、functions.phpでオーバーライドします

結局、あなたはまだ同じ問題に遭遇します-将来の互換性

また:

  • アップデートにより、プラグインの変更が上書きされます。
  • 関数はプラグインの変更を上書きします。

ですから、言いたくないのですが、プラグインを直接更新します。少なくとも、アップグレードすると、変更が欠落していることがすぐにわかります。さらに、プラグインの更新に変更が含まれる可能性があります。

于 2011-09-21T16:46:12.970 に答える
6

前方互換性を維持したい場合 (およびホストで SVN を使用できる場合) は、SVN を使用できますが、独自の変更を保持できます。

プラグイン ディレクトリにある各プラグインには、SVN リポジトリが必要です (これにより、ディレクトリは更新があるかどうかを認識します)。これがCF7レポです。

/custom-contact-form-7/ のようなフォルダー内の /plugins/ ディレクトリにトランクをチェックアウトします。wp-contact-form-7.phpファイルを変更して一意の名前を付け、必要な変更を加えてカスタマイズします。

新しい更新をsvn up取得するには、それらを取得するだけで、変更とマージされます。ただし、マージの競合をクリーンアップする必要がある場合があります。

Subversionを使用したバージョン管理は、必要に応じて、誰もが SVN を学び始める場所です。フォークしたい場合は、現在Github リポジトリもあります。

于 2011-09-21T17:09:10.697 に答える
0

更新を functions.php またはカスタム プラグインに追加する必要があると思います。今は面倒ですが、プラグインをアップグレードするたびに手間が大幅に軽減されます。

何があっても、更新で行われた変更を常に参照する必要があります。このファイルをコピーせずに機能を拡張できる場合でも、少なくとも変更が機能することを確認する必要があります。そして、WinDiff/BBEdit の比較は、それをすばやく処理します。

したがって、私の最初の提案は、その関数をオーバーライドすることです。

2 番目の提案:このプラグインにはいくつかの拡張機能 ( abc ) があることに気付きました。おそらく、彼らが拡張機能をどのように作成したかを知り、それらの詳細を使用して独自の拡張機能を作成することができます. 蛇口の水漏れを直すために新しい家を建てろと言っているようなものですが、それはアイデアです。

于 2013-03-04T16:17:00.970 に答える