首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >操作和筛选钩子如何理解在哪里查找我们将函数连接到它们的核心函数?

操作和筛选钩子如何理解在哪里查找我们将函数连接到它们的核心函数?
EN

WordPress Development用户
提问于 2019-01-02 20:18:50
回答 3查看 118关注 0票数 1

我想知道WordPress核心文件如何处理WordPress的模块和核心之间的关系?我们都知道它使用add_action()add_filter()来根据我们的插件中的意愿操作数据,并且有一个$tag参数,它是我们想要将我们的操作和筛选器连接到WordPress的核心函数的函数名。但是,操作和筛选器如何知道$tag参数(函数)在WordPress内核中的位置?

我开始阅读WordPress文件,但没有找到答案。

EN

回答 3

WordPress Development用户

回答已采纳

发布于 2019-01-05 08:41:03

我读过wordpress的全部核心文件。它是在核心文件夹中分割多个文件,实际上,这样做是非常明智的。

票数 0
EN

WordPress Development用户

发布于 2019-01-02 21:13:05

我想你可能看错了。它不需要在核心的任何地方(或其他地方)查找$tag函数。该函数需要按当前顺序加载。只要在触发操作/筛选器时加载包含自定义函数的任何文件,那么您的函数就可以运行(因为它当时在内存中)--否则,您将得到一个错误,因为该函数将是未定义的。

这里有一个关于我所说的实际的讨论。如果您在主题的functions.php文件中应用了与plugins_loaded挂钩的内容,则您的函数将永远不会启动(即使它就在functions.php中),因为在加载functions.php文件时,该操作已经传递。你需要稍后的行动。

或者另一个例子是,您需要确保实际加载包含函数的文件,以便当您的操作或筛选器调用被触发时,包含函数的文件被加载到内存中。例如,如果您已经开发了一个由多个文件组成的插件,并且在加载的主插件文件中有一个可以触发"my_cool_filter_function()“的过滤器,但您从不费心按照顺序处理该文件的include()require(),则该函数将引发一个未定义的错误,因为该函数在触发筛选器时不存在。但是,只要运行了include() (或require())来加载该文件,就可以运行my_cool_filter_function()了。

票数 1
EN

WordPress Development用户

发布于 2019-01-02 21:09:42

函数名在PHP中必须是唯一的,所以如果某个函数被分配给给定的钩子,那么就没有什么可查找的了.只有一个函数有这样的名字-否则你会得到致命的错误.

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/324469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档