wordpress - 我可以为 Wordpress 的 add_action() 的 Action Hook 参数使用变量而不是字符串吗?

标签 wordpress

我需要在 foreach 循环中动态构建多个 add_action() 函数,循环遍历用户可能创建的各种自定义分类法。

操作 Hook 的名称是“category_add_form_fields”,但 Hook 的“类别”部分会随着自定义分类法的每个名称而变化。

示例 1 因此,如果插件用户创建了一个名为“Colors”的分类法,则 Hook 将为“colors_add_form_fields”并且 add_action 如下所示:

add_action('colors_add_form_fields', 'myFunction',10,2);

示例 2 或者,如果插件用户创建了一个名为“sizes”的分类法,则 Hook 将是“sizes_add_form_fields”,add_action 将是:

add_action('sizes_add_form_fields', 'myFunction',10,2);

因为事先显然无法知道每个用户将命名他们的自定义类别,我使用 foreach 循环将每个类别名称存储为 $customcat,我将其附加到字符串“_add_form_fields”并存储$final 中的结果字符串用于 add_action() 函数

问题是,尽管我尝试了各种方法将这个变量插入到 add_action() 中,但它似乎无法识别它们。

我用谷歌搜索但找不到任何东西,甚至没有人问同样的问题。

有人知道我应该做什么吗?或者,如果根本无法使用变量,有没有其他方法可以使用 PHP 实现我的目标?

这些是我迄今为止尝试过的一些排列...

$final = $customcat . "_add_form_fields"; 
$final = "'" . $customcat . "_add_form_fields'"; 

add_action( $final, 'my_function', 10, 2);
add_action( "$final", 'my_function', 10, 2);
add_action( strval($final), 'my_function', 10, 2);

最佳答案

使用 $variable 作为钩子(Hook)名称应该没有问题。 如果这对您不起作用 - 检查您的 Hook 是否已设置,或者 arg.数字实际上是 2,或者发射序列或除此特定问题之外的任何其他问题..

关于wordpress - 我可以为 Wordpress 的 add_action() 的 Action Hook 参数使用变量而不是字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13738063/

相关文章:

mysql - 使用 1 个 MySQL 数据库安装 2 个 WordPress

php - Amazon Linux AMI php.ini 中对 upload_max_filesize 的更改不会生效

javascript - WordPress 联系表单 7 和自定义 jQuery 冲突

php - 修改代码以获取旧帖子上方最近评论的帖子

wordpress - 多个特色图片 Wordpress

html - 浏览器的图像全宽

php - 帮助在帖子内容区域外执行简码

css - Topmargin 0 不起作用?缓存问题?

javascript - 不确定为什么这不通过 AJAX 在 IE 中加载内容?

php - WooCommerce : Only allow products from the same category in cart