新しいアクションで既存のプラグインアクションをオーバーライドする方法


18

プラグインを使用しています。このようなアクションがあります。

add_action('publish_post', 'old_action');
function old_action($pid) {
    "code goes here"
    }
}

このプラグイン用のモジュールを書いています。そのため、古いアクション関数を新しいアクション関数でオーバーライドする必要があります。

これが私の新しい機能です。

function new_action($pid) {
      "code goes here"
        }
    }

フックを使用して、そのold_action関数をnew_action関数に置き換えたいと思います。誰も私を助けることができますか?

ありがとう

回答:


33

次のremove_action()ように関数を使用できます。

remove_action('publish_post', 'old_action');
add_action('publish_post', 'new_action');

old_actionがpriorityパラメーターで追加されたremove_action場合、それを呼び出しに追加する必要があることに注意することが重要です。追加しないと、削除に失敗します。old_actionがクラス内に追加された場合、他の影響があります。詳細はこちらをご覧ください。


3
削除する関数を追加した後に削除アクションを呼び出す必要があることを明確にした+1。
スティーブンハリス

2
'after_setup_theme'はremove_actionに適した場所のようです。参照:wordpress.stackexchange.com/questions/170663/…–
DigitalDesignDj
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.