我希望将函数中的参数传递给 add_action()
,但显然我需要通过 do_action 来完成此操作。我的问题是 add_action 标记是“init
”,我认为如果我再次/过早运行它会导致问题。有什么想法吗?
function taxonomy_equipment( ) {
$name = "Equipment";
$labels = array(
'name' => _x( $name, 'taxonomy general name' ),
'singular_name' => _x( $name, 'taxonomy singular name' ),
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
);
register_taxonomy( str_replace(' ', '', strtolower($name)), 'exercise', $args );
}
add_action( 'init', 'taxonomy_equipment', 0 );
我想将 $name
作为参数传递。
最佳答案
测试:
global $my_var;
$my_var = $value;
add_action('any_hook', 'myfunction');
function myfunction() {
global $my_var;
}
已更新
其他方式:
function taxonomy_equipment( ) {
$my_arg_globals = $GLOBALS['my_arg_globals'];
$name = $my_arg_globals['name'];
$labels = array(
'name' => _x( $name, 'taxonomy general name' ),
'singular_name' => _x( $name, 'taxonomy singular name' ),
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
);
register_taxonomy( str_replace(' ', '', strtolower($name)), 'exercise', $args );
}
$my_arg_globals = array('name' => 'Equipment');
add_action( 'init', 'taxonomy_equipment', 0 );
在这种情况下工作非常简单:
function get_var_test()
{
$my_arg_globals = $GLOBALS['my_arg_globals'];
return $my_arg_globals['name'];
}
$my_arg_globals = array('name' => 'name1');
echo Sum();
$my_arg_globals = array('name' => 'name2');
echo Sum();
$my_arg_globals = array('name' => 'name3');
echo Sum();
关于php - add_action() 中的函数参数传递给 init,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18679524/