缺少自定义函数Widget_init的参数2

时间:2018-04-04 作者:Kevin Mamaqi

我使用customizer中的theme\\u mod字符串生成自定义侧栏,但它是从另一个函数调用的。这是我的代码:

function call_sidebar_function() {

    if ( get_theme_mod( \'enable_sidebar\' ) ) {
        $name = "mySidebarName";
        $numberOfSidebars = get_theme_mod(\'number_of_sidebars\');
        generate_sidebars($name, $numberOfSidebars);
    }
}

function generate_sidebars($name, $numberOfSidebars) {
    $i = 1;
    foreach ($numberOfSidebars as $sidebar) {           
        register_sidebar(
            array(
                \'name\' => $name.$i,
                \'id\' => $name.$i,
            )
        );
        $i++;
    }
}
add_action( \'widgets_init\', \'generate_sidebars\' );

1 个回复
最合适的回答,由SO网友:Nathan Johnson 整理而成

widgets_init 它不是一个函数,而是一个动作挂钩。为该挂钩指定的回调是generate_sidebars 需要两个参数,但widgets_init 钩子不会向其回调传递任何参数。

我想你想做的是:

add_action( \'widgets_init\', \'call_sidebar_function\' );
这将调用call_sidebar_function() 函数,然后调用generate_sidebars() 具有正确参数的功能。

结束