5

私はワードプレスで作業しており、更新後に機能を壊さないためにプラグインを編集せずにプラグイン機能を変更するために検索しています。

しかし、私はまだ解決策を見つけていません。手伝って頂けますか ?

前もって感謝します

4

1 に答える 1

1

私はこの問題に何度も遭遇しました。他の人が言ったように、PHP 関数を変更することはできません。プラグインは拡張バージョンではなく元のクラスをインスタンス化するため、クラスの拡張は機能しません。

最善の解決策 (私にとっては何度かうまくいきました) は、既存のプラグインにフックを追加し、次のように元の作成者に提出することです。

  1. 元のプラグインが github にある場合は、フォークしてクローンします。それ以外の場合は、元のプラグインをgitローカルで制御します。後で差分またはロールバックを実行する必要がある場合があります。
  2. WPML-extensions (または何か) と呼ばれる新しいプラグインを作成します。
  3. 使用するアクションまたはフィルターの元のプラグイン コードを検索します。それらがすでに利用可能で、必要なことを行う場合は、WPML 拡張プラグインからそれらにフックして使用します。
  4. WPML プラグインに正しいフックが存在しない場合は、それらを追加してから上記の手順に従います。元のプラグインの最新バージョンを使用して、変更が受け入れられる可能性を最大限に高めてください。
  5. アクションまたはフィルタを追加して元のプラグインを変更した場合はgit diff、パッチを保存して後で再適用できるようにします。元のプラグイン作成者にパッチを提出し、最善を尽くしてください。アクションとフィルターだけに固執した場合、作成者は変更をすぐに受け入れる可能性が高くなります。
  6. 後で元のプラグインを更新する場合は、変更が受け入れられるまで変更を再適用する必要があります。その差分ファイルを使用できます。git rebaseプラグインの更新後に行った変更を再生するために使用する方法がある場合があります。
于 2013-07-24T18:27:53.390 に答える