如何移除WordPress中FLBuilderFonts类绑定在wp_head钩子的preload动作
失效原因
- 移除动作的执行时机早于动作注册的时机:直接在
functions.php根层级写remove_action的话,此时插件还没完成初始化,FLBuilderFonts::init()还没执行,目标动作还没注册,自然移除失败 - 移除动作的参数和注册时不一致:WordPress要求
remove_action的回调格式、优先级参数必须和add_action时完全匹配,否则无法匹配到要移除的动作
可行解决方案
将以下代码添加到主题的functions.php文件中即可:
add_action('after_setup_theme', 'custom_remove_fl_builder_preload', 100); function custom_remove_fl_builder_preload() { // 回调格式、优先级必须和注册时完全对应 remove_action('wp_head', array('FLBuilderFonts', 'preload'), 5); }
如果上述代码依旧不生效,可以将挂载的钩子换成plugins_loaded,调整优先级为20,确保在插件初始化完成后执行移除逻辑:
add_action('plugins_loaded', 'custom_remove_fl_builder_preload', 20); function custom_remove_fl_builder_preload() { remove_action('wp_head', array('FLBuilderFonts', 'preload'), 5); }
内容的提问来源于stack exchange,提问作者Trung Hieu Bui
相关产品推荐
相关产品推荐

