it-swarm.com.de

Fehlendes Argument 2 für eine benutzerdefinierte Funktion widgets_init

Ich verwende eine theme_mod-Zeichenfolge vom Customizer, um eine benutzerdefinierte Seitenleiste zu generieren, aber sie wird von einer anderen Funktion aufgerufen. Das ist mein 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' );
1
Kevin Mamaqi

widgets_init ist keine Funktion, sondern ein Aktions-Hook. Der Rückruf, den Sie für diesen Hook angeben, ist generate_sidebars, für den zwei Parameter erforderlich sind. Der widgets_init-Hook übergibt jedoch keine Parameter an seine Rückrufe.

Ich denke, Sie versuchen Folgendes zu tun:

add_action( 'widgets_init', 'call_sidebar_function' );

Welches die Funktion call_sidebar_function() aufruft, welches dann die Funktion generate_sidebars() mit den richtigen Parametern aufruft.

4
Nathan Johnson