说,您想在创建新帖子时单击发布帖子按钮时执行某些操作。为了举个例子,假设您希望每次创建帖子时都会自动将电子邮件发送给某人。
问题是什么是了解哪些核心功能可以挂钩的最佳方式 - 进行电子邮件发送。
或者就是这样,你有点猜测 - 严格依赖你的WordPress API内存?例如,您可以认为,由于此操作与创建帖子有关,因此您应该在插件/操作codex页面中搜索包含单词post
的函数名称,然后通过扫描它们来查找诸如wp_insert_post,wp_update_post,save_post,post_X,X_post等项目?这是常态吗?
对于这种特殊情况,您可能会以wp_insert_post或save_post结束。但我的问题很笼统。这是解决问题的正确方法吗?
或..是否有另一种或更有效的方式(可能是一个插件)让我知道哪些(可挂钩的)核心功能在当前或之前的请求中运行?通过这种方式,我可以获得所有相关函数的明确列表供我选择或阅读直接处理我感兴趣的当前请求。不再猜测工作......
请注意,由于标题重定向,当前请求可能不会删除它,您需要能够获取上一个请求中所有可挂钩函数的列表。 (在遇到重定向代码之前刚刚运行的那个)。
答案 0 :(得分:2)
我弄清楚哪些钩子可用的方法很简单;我使用本地Apache / MySQL安装WordPress的副本,然后使用PhpStorm + Zend Debugger并跟踪代码并查看引发的内容。从那里我只根据我需要的上下文决定哪个钩子是最好的,通常如果有几个潜在的钩子很明显哪个钩子可以使用。
还有其他方法,例如instrumenting the list of hooks,并且可能有办法使用调试条的附加组件来获取这些信息,但根据我的经验,所有这些方法都像是在黑暗中摸索用于电灯开关。如果您使用调试器,就像打开灯开关一样,您可以在那里看到灯开关的确切位置,而不会浪费精力。