web-dev-qa-db-de.com

Standardwert von wp_customizer in der theme_mod-Ausgabe verwenden?

Gibt es eine Möglichkeit, den Standardwert eines wp_customize-Textfeldtyps mithilfe der echo get_theme_mod (); auszugeben, ohne den Theme Customizer aufzurufen, etwas zu ändern und dann zu speichern?

Ich habe gerade auf einer anderen Stapelaustausch-Frage gelesen, dass der get_theme_mod erst etwas anzeigt, nachdem Sie ihn im Theme Customizer gespeichert haben. Die Nichtausgabe des Standardwerts einer wp_customize-Einstellung scheint dem Zweck der Verwendung eines Standardwerts zu widersprechen.

Zurück zur Frage: Gibt es eine Möglichkeit, den Standardwert einer wp_customize-Einstellung im Front-End automatisch anzuzeigen?

4

Leider nicht - alle Ihre benutzerdefinierten Steuerelemente sind mit customize_register verknüpft, sodass sie nur beim erstmaligen Anpassen des Themas zum Tragen kommen.

get_theme_mod() verwendet ein zweites Argument für einen "Standard" -Wert - ja, dies bedeutet zwei Instanzen von Daten in Ihrem Code, aber es ist eine halbe Lösung.

Ich denke, ein eher TROCKENER Ansatz wäre eine Kopplung von globalen und Hilfsfunktionen:

$my_theme_defaults = array(
    'foo' => 'bar',
    'baz' => 'boo',
);

function my_theme_customize( $wp_customize ) {
    global $my_theme_defaults;

    $wp_customize->add_setting(
        'foo',
        array(
            'default' => $my_theme_defaults['foo'],
        )
    );  
}

function my_theme_mod( $name ) {
    global $my_theme_defaults;

    echo get_theme_mod( $name, $my_theme_defaults[ $name ] );
}
7
TheDeadMedic

Tatsächlich können Sie einen Standardwert ausgeben. Der richtige Weg ist, einen Standard für deinen Mod wie folgt zu setzen:

echo get_theme_mod( 'MOD_ID', 'YOUR DEFAULT OUTPUT' );
3
WPExplorer