php - add_action() 中的函数参数传递给 init

标签 php wordpress

我希望将函数中的参数传递给 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/

相关文章:

javascript - 如何将滚动速度更改为平滑?

WordPress、Woocommerce 属性值输入字段类型

linux - Mantis 错误跟踪器的 Varnish cookie 问题

php - 如果与服务器的连接丢失,如何创建离线网页

php - Woocommerce 3中获取产品属性标签名称

wordpress - 产品页面屏幕选项调整每页的产品数量

php - 将代码添加到 wp-settings.php/changing table prefix for posts

php - 使用 PHP/MySQL 和选择框正确过滤

php - Laravel 和 MS SQL Server 数据库连接抛出错误 "(3/3) QueryException could not find driver"

php - 如何检测用户在网页上的位置并插入mysql?