问题描述

我正在尝试删除一个使用子主题的 elegant-themes 主题的主题操作。当我在父主题 functions.php 中的任何位置删除 add_action 代码之后的操作时,这可以工作。但是,当我从 child theme functions.php 中添加它时,它不起作用。

remove_action ('after_setup_theme', 'et_pb_setup_theme' , 10);

删除操作与添加操作具有相同的优先级 10 。应该不行吗

add_action( 'after_setup_theme', 'et_pb_setup_theme' ); //parent theme add_action

最佳解决方案

正如 @cybmeta 已经指出的那样,你的清除时间太早了。所以你必须推迟实际删除,例如:

add_action( 'after_setup_theme', 'wpdev_170663_remove_parent_theme_stuff', 0 );

function wpdev_170663_remove_parent_theme_stuff() {

    remove_action( 'after_setup_theme', 'et_pb_setup_theme' );
}

次佳解决方案

子主题的 functions.php 文件在父主题 functions.php 之前加载,所以当您在子主题中运行 remove_action 时,您尝试删除的操作不存在 beacuse,稍后添加。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。