我需要在 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);