如何用新动作覆盖现有插件动作


18

我正在使用插件。它具有这样的动作。

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

我正在为此插件编写模块。所以我需要用我的新动作函数覆盖那个旧的动作函数。

这是我的新功能。

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

我想使用钩子将new_action函数替换为old_action函数。谁能帮我?

谢谢

Answers:


33

您可以使用以下remove_action()功能:

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

重要的是要注意,如果为old_action添加了优先级参数,则必须将其添加到remove_action调用中,否则它将无法删除它。如果在类中添加了old_action,则还有其他含义。有关更多信息,请参见此处


3
+1,说明在添加要删除的函数之后必须调用remove动作。
史蒂芬·哈里斯

2
“ after_setup_theme”似乎是remove_action的好地方。请参阅:wordpress.stackexchange.com/questions/170663/…–
DigitalDesignDj
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.