我在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传递参数!】有关详细信息, 请参见此答案。
推荐阅读
- jQuery中WordPress模板目录的路径()
- 页面模板不显示在下拉菜单中
- 简单介绍python编程之文件读写
- jenkins-代码质量测试
- 第八周学习作业
- 10MySQL数据库安装
- Nginx中的location匹配与rewrite重写跳转
- Alpine linux安装docker
- Nginx的优化与防盗链