如何在Wordpress中覆盖默认的do_action输出

时间:2016-07-01 00:58:44

标签: wordpress wordpress-theming

我正在尝试覆盖Wordpress主题页脚中的输出。给定的部分只有一个sents = text.split('.') avg_len = sum(len(x.split()) for x in sents) / len(sents)

在我的functions.php中,我添加了:

do_action('action_name')

然而,这会输出我想要替换的内容以及我想要添加的内容。我对主题Wordpress很新,所以我在这里相当迷失。我究竟做错了什么?

2 个答案:

答案 0 :(得分:0)

点击add_action相关代码 -

  

add_action(string $ tag,callable $ function_to_add,int $ priority =   10,int $ accepted_args = 1)

     

$ tags (字符串)(必填)操作的名称   $ function_to_add被挂钩。

     

$ function_to_add (callable)(必填)你的功能名称   希望被称为

     

$ priority (int)(可选)用于指定其中的顺序   执行与特定动作相关联的功能。降低   数字与早期执行相对应,并且具有相同的功能   优先级按照添加到的顺序执行   行动。默认值:10

     

$ accepted_args (int)(可选)函数的参数个数   接受。默认值:1

看看下面的帖子希望这会对你有所帮助 -

https://developer.wordpress.org/reference/functions/add_action/

答案 1 :(得分:0)

如果您可以找到要删除的输出的功能,可以使用remove_action()将其删除:

remove_action( $tag, $function_to_remove, $priority );

要找到这个,你必须查看生成它的主题或插件的代码。某处将是add_action()类似于你的电话。请注意函数名称和优先级,并在插件/主题中使用remove_action()

硬解决方案是使用remove_all_actions()删除该操作的所有功能。

之后,您可以像现在一样添加自己的输出。

注意:请注意,不建议在所有操作中使用remove_all_actions()。例如,操作wp_footer用于在页面末尾加载JavaScript。删除所有功能将使依赖它的插件和主题变得毫无用处。