我也有同样的问题。我想删除来自另一个插件的一个操作,并用我在开发的插件中编写的另一个函数替换它,但我的文件名(正如@Sumit所说)按字母顺序排在原始插件文件之后。尽管如此,我还是能够取消这个动作。
对我有用的是remove_action
在另一个add\\u操作中调用,以便在加载完插件后运行它。这可以通过使用操作实现init:
add_action( \'init\', \'changeActions\' );
function changeActions () {
remove_action(\'my_action\', \'the_function_from_the_plugin\', 10);
}
P.S.:如果要查看操作是否已正确删除,可以使用中的代码打印与所需操作挂钩的函数
this answer. 我使用了一个测试短代码,因为我没有使用主题文件(只需添加
[test_actions]
在wordpress面板内的任何页面中)。
add_shortcode(\'test_actions\', \'testActions\');
function testActions($attrs) {
//get the list of all actions using this global variable
global $wp_filter;
//get only the actions hooked to \'my_action\'
$r = $wp_filter[\'my_action\'];
//return the array dump as a string
return var_export($r, TRUE);
}