从使用do_action的页脚中删除Wordpress代码

时间:2019-05-31 03:38:19

标签: wordpress

我正在阅读有关如何从子主题中删除使用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>";
}

1 个答案:

答案 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更好。