J'utilise une chaîne theme_mod de customizer pour générer une barre latérale personnalisée, mais elle est appelée à partir d'une autre fonction. Ceci est mon code:
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' );
widgets_init
n'est pas une fonction, c'est un crochet d'action. Le rappel que vous spécifiez pour ce hook est generate_sidebars
, ce qui nécessite deux paramètres, mais le hook widgets_init
ne transmet aucun paramètre à ses rappels.
Je pense que ce que vous essayez de faire est la suivante:
add_action( 'widgets_init', 'call_sidebar_function' );
Qui appellera la fonction call_sidebar_function()
qui appellera ensuite la fonction generate_sidebars()
avec les paramètres corrects.