在哪里可以找到主题中的“Add_action()”?

时间:2020-03-12 作者:Alberto

我正在为使用该主题的网站开发WordPress插件ColorMag. 插件使用the_content() 在页面中插入某些内容。当我将插件放在其他测试站点时,内容显示正常,但使用ColorMag主题时,内容显示在正确的位置,而且在页面开始处还显示了两次。

查看代码,我发现重复的内容是在“header.php”中的<?php do_action( \'colormag_before\' ); ?>. 但我找不到相应的add_action() 所以我不能修改它。

我在哪里可以找到add_action()?

谢谢

2 个回复
SO网友:Mikhail

有一种情况是,主题通过do_action("action_name") 但它并没有被迫将实际操作绑定到它,因为theme的开发人员可能只是为了使theme更具可扩展性而这样做,事实上从来没有在theme中使用它。

因此,您可以通过add_action("colormag_before", "your_function_name") 在子主题或插件中,它将起作用。

显然,如果您只想检查钩子是否已经在主题中的某个地方使用过,只需在主题的代码中搜索add_action("colormag_before" (或add_action( "colormag_before"add_action(\'colormag_before\'add_action( \'colormag_before\'. 这些只是拼写方式不同的变体)

如果可以通过正则表达式进行搜索,则add_action\\(\\s*[\'"]colormag_before

SO网友:Alberto

我找到了解决办法。

在我的插件代码中,为了修改内容,我只使用is_page( $page_id ) 检查是否是我要修改的页面的条件。添加in_the_loop() 条件解决了问题。

无论如何,感谢米哈伊尔的贡献。