我使用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\' );
最合适的回答,由SO网友:Nathan Johnson 整理而成
widgets_init
它不是一个函数,而是一个动作挂钩。为该挂钩指定的回调是generate_sidebars
需要两个参数,但widgets_init
钩子不会向其回调传递任何参数。
我想你想做的是:
add_action( \'widgets_init\', \'call_sidebar_function\' );
这将调用
call_sidebar_function()
函数,然后调用
generate_sidebars()
具有正确参数的功能。