当我们启动时:
do_action( \'foo\' );
我们实际上是在打电话:
do_action( \'foo\', \'\' );
那是因为
defined; 具有
the empty string as the default input argument:
function do_action($tag, $arg = \'\') {
// ...
}
因此,操作的回调get将空字符串作为第一个输入参数。
至少从WordPress开始就是这样version 1.5.
自WordPress 4.6以来,do_action()
是的包装WP_Hook::do_action()
;
如果
如果没有参数部分,它的定义如下:
function do_action($tag) {
// ...
}
并对本部分进行相应修改:
$args = array();
if ( is_array($arg) && 1 == count($arg) && isset($arg[0]) && is_object($arg[0]) ) // array(&$this)
$args[] =& $arg[0];
else
$args[] = $arg;
然后,我们可以在回调中使用第一个输入参数的默认值。