如何将钩子变量传递给函数?

时间:2013-10-10 作者:neanderslob

我有一个函数,其中有一个add\\u操作,可以调用user\\u register挂钩。我希望能够从user\\u register挂钩和$\\u POST数组中回显变量$user\\u id。(好吧,我的目标是做得更多,但你明白了)。见下文:

function my_function{

add_action( \'user_register\' .....

    .
    .
    .
echo $user_id;
var_dump ($_POST);
    .
    .
    .
}
我如何才能做到这一点?

我意识到这可能非常简单,但我看到的示例没有在另一个函数中使用add\\u操作。

谢谢你的帮助。

2 个回复
SO网友:rohmann

不能按预期的方式在函数中使用动作或挂钩。动作和挂钩是关于delayed execution 您正在附加稍后将执行的代码。添加操作后,您的功能将正常继续。

然后,当用户实际注册时,您的代码将运行。但是,您永远也回不到原来的功能。

您可能需要考虑使用多个操作和全局变量。在第一个操作中,我们可以设置全局:

add_action( \'user_register\' .....
global $myvariable;
    .
    .
    .
echo $user_id;
var_dump ($_POST);
$myvariable = \'a Value\';
    .
    .
    .
}
然后你可以有另一个动作,稍后在其他地方激发。在这里,我们可以调用这些全球数据:

add_action(\'wp_footer\', function() {
    global $myvariable;
    echo $myvariable;
});

SO网友:s_ha_dum

当您使用add_action 回调函数被放入一种队列中,并在操作挂钩运行时执行——在您的情况下,这将是user_register. “钩子”中的数据不会通过add_action. 无论您需要做什么,都需要在钩子回调中完成,或者您需要找到另一种方法来完成您需要做的事情,并且由于您已经致命地截断了代码,因此无法从问题中确定这是什么。

可能你可以用一个静态变量、一个全局变量或一个类来做你需要做的事情,但没有关于你试图解决的问题的更多信息,这就是我所能提供的。

请参见:Clarification on filters and hooks

结束

相关推荐

如何使用可视化编辑器在帖子中显示php源代码?

NOTE我不想执行php代码,只想显示。我想显示这个php代码<?php wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); ?> 在柱子里面。我不能让它工作。如果我转到编辑器的文本类型并键入<pre class=\"lang:php nums:false\"> <?php wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); ?>