如何正确地将操作挂钩函数调用的函数添加到函数.php中?

时间:2017-01-29 作者:CoderScissorhands

我正在用一个函数修改我的主要查询,modify_main_query($query), 它确定用户通过if/else语句访问哪个页面,然后相应地修改查询。我使用此挂钩添加该函数:

主函数的挂钩

add_action(\'pre_get_posts\', \'modify_main_query\')

中的一个我的if子句(针对某一页)modify_main_query($query) 调用一个小函数,称为get_exclusion_IDs_for_cats_by_name($cat_names).

这是一个简化版本:

主挂钩新增功能

function modify_main_query($query){

if ( is_front_page() ) {

   [...do stuff]

}

elseif ( is_archive() ) {
   
    $cat_names=array(\'apple\', \'orange\'); 
    get_exclusion_IDs_for_cats_by_name($cat_names); // small function I want to add 
}

else {NULL;}

endif;

我的问题

添加这个小功能的正确方法是什么,get_exclusion_IDs_for_cats_by_name($cat_names), 由动作挂钩函数调用,modify_main_query($query), 至功能。php?我是否只是将小函数转换为函数。php,还是我需要一个单独的钩子来实现mini函数?如果我只是单独添加被调用的函数而没有挂钩,那么它就可以工作了,但我想检查一下,以确保我是以首选的方式执行的。

谢谢

2 个回复
最合适的回答,由SO网友:prosti 整理而成

这看起来不错。如果我们假设get_exclusion_IDs_for_cats_by_name($cat_names); 工作正常,那么你就做对了。

您的问题可以这样重新表述:

我可以调用自定义操作中的其他函数吗?

答案是yes. 唯一需要注意的是,您的其他函数在调用它的地方可用。

SO网友:Rick Hellewell

如果您没有使用自己构建的主题,那么通常建议您创建一个子主题,然后将您的独特功能放入该子主题的功能中。php文件。

这样,您的函数就不会被正在使用的主题的更新所覆盖。永远不要更改核心文件,也不要更改正在使用的主题,这始终是一个好主意。

如果您正在构建自己的主题,那么在需要的地方添加函数。

相关推荐

如何:使用WordPress‘Hooks’在自定义帖子类型上显示ACF[字段]?

Sub-questions:i) Which files/templates need to be copied to the child theme folder, other than function.php and style.css?ii) What actions/filters/ should be used and where should this code be inserted?抱歉,如果下面的措辞不准确,我是WP初学者。我最近在本地主机上安装了Customizer 4.0.8[作为