在wordpress中使用add_action传递参数!

我在wordpress开发中遇到一个非常奇怪的问题,
在fucntions.php中, 我有以下代码

//mytheme/functions.php $arg = "HELP ME"; add_action('admin_menu', 'my_function', 10, 1); do_action('admin_menu', $arg ); function my_function($arg) { echo "the var is:".$arg."< br> "; }

输出是
the var is:HELP ME the var is:

为什么功能重复2次?为什么正确地传递了” 帮助我” 参数, 而第二次没有传递参数?
我已经竭尽全力了2天, 并在许多地方进行了搜索以找到解决方案, 但我没有运气。
我想做的很简单!我只想使用add_action将参数传递给函数?
#1在” my_function” (尽管是你自己的:)中, 编写以下行:
print_r(debug_backtrace());

http://php.net/manual/en/function.debug-backtrace.php
它将帮助你了解发生了什么。
或者, 你可以使用XDebug(在开发服务器上)。
#2好吧, 首先, 在my_function()函数中, 你未定义$ arg。你正在尝试回显不存在的某些内容-因此, 返回时该内容为空。因此, 你需要对其进行定义。 (编辑添加:你试图在函数外部定义它-但是要使函数内部能够识别它, 你必须对参数进行全局化。)
function my_function($arg) { if(!$arg) $arg = 'some value'; echo "the var is:".$arg."< br> "; }

当你执行add_action时, 你需要定义$ arg值:
add_action('admin_menu', 'my_function', 10, 'my value');

#3你是否尝试过将函数放在add_action之前?
#4使用这样的匿名函数:
function my_function($arg) { echo "the var is: $arg< br> "; } $arg = "HELP ME"; add_action('admin_menu', function() { global $arg; my_function($arg); }, 10);

【在wordpress中使用add_action传递参数!】有关详细信息, 请参见此答案。

    推荐阅读