2012-11-14 9 views
5

私はwordpressで働いています。プラグインを編集せずにプラグインの機能を変更するには、の更新後に改行機能を持たないためにを検索してください。プラグインを編集しないでwordpressプラグインの機能を変更するには?

しかし、解決策はまだ見つかりませんでした。手伝って頂けますか ?

ありがとうございます。

+2

**どの**プラグインを変更してもよろしいですか?残念ながら、ほとんどのプラグインは、コードを変更せずに機能の上書きを許可する方法で書かれていませんが、あなたが編集したいプラグインは、フックとフィルタを使用してプラグインを行うことができます。 –

+0

私はWPMLプラグインを変更したいと思います。 do_action()フックはこのプラグインのほとんどには存在しません –

+0

クラスの場合は、そのクラスを拡張するためにTRYできます.. –

答えて

1

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

  1. オリジナルのプラグインはgithubの、フォークやクローンにある場合:

    最善の解決策は、(私のために何回か働いている)、次のように既存のプラグインにフックを追加し、元の作者に戻って提出することですそれ。それ以外の場合は、元のプラグインをローカルでgitの制御下に置きます。あとで差分やロールバックを行う必要があるかもしれません。

  2. WPML-extensions(または何か)と呼ばれる新しいプラグインを作成します。
  3. アクションまたはフィルタを使用する元のプラグインコードを検索します。それらがすでに利用可能であり、必要なことをする場合は、WPML-extensionsプラグインからそれらにフックすることで使用してください。
  4. 正しいフックがWPMLプラグインに存在しない場合は追加し、上記の手順に従います。元のプラグインの最新バージョンを使用して、変更が受け入れられる可能性を最大限に高めてください。
  5. アクションまたはフィルタを追加して元のプラグインを変更した場合は、git diffを実行して、後で再適用できるようにパッチを保存します。オリジナルのプラグインの作者にパッチを提出し、最高のものを願ってください。アクションとフィルタだけを使うと、作者は変更をすぐに受け入れることができます。
  6. 元のプラグインを後で更新する場合は、変更が承認されるまで変更内容を再度適用する必要があります。そのdiffファイルを使用することができます。 git rebaseを使用して、プラグインの更新後に行った変更を再生する方法があります。
関連する問題