我正在阅读有关如何从子主题中删除使用do_action('action_name')的父主题的部分/内容的文档。据我所知,它仍然无法正常工作。目前,我要做的只是删除我的子主题中的页脚父主题版权部分。我有操作名称和调用它的父函数。我可以在页脚中添加内容,但是不能删除其中的内容。
我已经浏览了主题父主题文件,而construction_base_footer_copyright确实是我要删除的页脚信息。我不明白我在做什么错。感谢您提供的任何帮助。
我不明白我在做什么错。感谢您的帮助。
**父主题Footer.php **
<?php
/**
* Hook - construction_base_action_footer.
*
* @hooked construction_base_footer_copyright - 10
*/
do_action( 'construction_base_action_footer' );
?>
<?php wp_footer(); ?>
</body>
</html>
儿童主题功能.php
add_action('construction_base_action_footer', 'action_name');
function action_name() {
remove_action( 'construction_base_action_footer', 'construction_base_footer_copyright', 10 );
echo "<p>Additional text</p>";
}
答案 0 :(得分:1)
发生的事情是,由于您的钩子和父级的钩子具有相同的优先级(10),因此在父级的钩子触发之前,您的remove_action
发生得不够快。您可以通过以下几种方法来解决此问题。
A)优先考虑您自己的功能,以使remove_action
在版权触发之前发生。更改:
add_action('construction_base_action_footer', 'action_name');
收件人:
add_action('construction_base_action_footer', 'action_name', 1);
那应该足以解决它,但实际上并不是“最佳实践”方法。
B)您可以将调用更改为footer.php
中的操作。将文件复制到您的子主题目录,然后完全删除do_action('construction_base_action_footer');
行,并用所需的任何内容替换它,或者将其更改为使用不同的动作名称调用您自己的自定义动作函数。这两种方法都比选项A更好。