好的,我的网站上有一个插件,可以触发do\\u action()。
在第二个插件(我的自定义插件)中,我钩住这个动作,并最终为我自己的另一个自定义动作调用do\\u action()。第二个动作永远不会开火,但是。。。我不明白为什么代码没有“看到”它?
下面是一个简单的示例:
OTHER PLUGIN, the trigger
static function doSomething()
{
do_action( \'my_action_1\' );
do_action( \'my_action_2\' );
}
MY PLUGIN
construtor
{
add_action( \'my_action_2\', myAction2 );
add_action( \'my_action_1\', myAction1 );
}
myAction1()
{
print( \'print from action1\' );
do_action( \'my_action_2\' ); // this is the call that never executes
}
myAction2()
{
print( \'print from action2\' );
}
现在的输出:
print from action1
print from action2
应该是什么…因为myAction1()调用myAction2()的do\\u action:
print from action1
print from action2
print from action2
出于某种原因,action1无法“看到”action2,就好像它不存在一样。但是,我不知道如何让它存在,就像它存在一样?
奖励积分,添加has_action( ‘my_action2‘ );
当add\\u action()存在时,在上面注释的行下生成1。如果我将其注释掉,则为0。所以它KNOWS 动作/钩在那里,只是没有开火?