3

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

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

示例 1 因此,如果插件用户创建了一个名为“Colors”的分类法,那么钩子将是“colors_add_form_fields”并且 add_action 看起来像:

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

示例 2 或者,如果插件用户创建了一个名为“sizes”的分类法,那么钩子将是“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);
4

1 回答 1

0

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

于 2012-12-07T06:50:10.710 回答