尝试删除插件中的 WordPress 操作



我有一个插件可以将Google字体加载到网站的头部,但我想删除该操作。以下是他们的做法:

add_action( 'wp_head', 'add_web_font', 0 );

我正在尝试像这样删除它:

add_action( 'wp_head', 'remove_my_action', 20 );
function remove_my_action(){
remove_action( 'wp_head', 'add_web_font', 0 );
}

我不确定为什么上面没有删除它?我把我的代码放在一个插件中。即使优先级为 0,它仍然不会停止操作。

remove_action 中,如果不是默认值 10,则还必须包括定义操作时使用的优先级。在您的情况下,添加操作的优先级为 0,因此您需要使用以下方法:

function remove_my_action(){
    remove_action( 'wp_head', 'add_web_font', 0 );
}

参考: WordPress Codex: remove_action

重要提示:要删除挂钩,$function_to_remove 和 $priority 参数必须与添加挂钩的时间匹配。这适用于过滤器和操作。删除失败时不会发出警告。

感谢@FluffyKitten让我朝着正确的方向思考。我将我的操作添加到plugins_loaded以确保它随后运行。工作代码如下:

function remove_my_action(){
remove_action( 'wp_head', 'add_web_font', 0 );
}
add_action( 'plugins_loaded', 'remove_my_action', 20 );

氧气中的钩子已更改为oxygen_enqueue_frontend_scripts

remove_action('oxygen_enqueue_frontend_scripts', 'add_web_font',0);

在版本 3.9 的文件组件 init.php:4344 中找到

最新更新