【发布时间】:2015-07-17 06:37:44
【问题描述】:
我目前正在为 WordPress 编写一个插件,但我对 add_action 和 do_action 函数感到困惑。我想我可能试图在错误的环境中使用它们,如果是这样的话 - 有人能指出我正确的方向吗?
我从讨厌 WordPress 到喜欢它,我从没想过我会写一个 wordpress 插件,但现在我掌握了窍门,它与普通的 PHP 开发并没有什么不同。
无论如何,如果我要在插件中包含以下代码:
class aCoolPlugin {
function __construct() {
add_action('clear_auth_cookie', array( $this, 'aCoolFunction' ), 10, 2 );
}
function aCoolFunction( $arg1, $arg2 ) {
// Do something with the arguments
}
}
我将如何实际运行aCoolFunction 函数?现在,我尝试了以下方法:
do_action( 'init', "arg1 value", "arg2 value" );
但是,在尝试运行该代码之前,我意识到:
- 这没有任何意义,因为它实际上会过早地运行
init操作,并且; - 就是不管用!
所以,我从中学到了:
- 我使用
add_action挂钩到 WP 的现有功能 -
do_action真的是为新的钩子保留的,真的想不出一个有用的情况,应该先调用一个钩子,然后再调用一次?
所以,我现在的问题是:我怎么能将我的变量传递到add_action 代码中? Codex 没有说任何关于论点的内容,那我有什么选择? 或者,我的逻辑和理解有缺陷吗?
总体目标是什么? 目标是在每次调用特定钩子时都运行一个带有设置参数的函数,并且不早于/晚于调用原始钩子应该是
【问题讨论】: