web-dev-qa-db-fra.com

Utiliser la valeur par défaut de wp_customizer dans la sortie theme_mod?

Existe-t-il un moyen de générer la valeur par défaut d'un type de champ de texte wp_customize à l'aide de la fonction echo get_theme_mod (); sans passer par le personnalisateur de thème, en modifiant quelque chose et en l'enregistrant?

Je viens de lire sur une autre stackexchange question que le get_theme_mod ne montrera que quelque chose après que vous l’ayez sauvegardé dans Theme Customizer. Ne pas être en mesure de sortir la valeur par défaut d'un paramètre wp_customize semble défier le but d'utiliser une valeur par défaut.

Revenons donc à la question: existe-t-il un moyen d’afficher automatiquement la valeur par défaut d’un paramètre wp_customize en mode frontal?

4

Malheureusement, toutes vos commandes de personnalisation sont rattachées à customize_register; elles ne seront donc utilisées que lors de la personnalisation du thème pour la première fois.

get_theme_mod() prend un deuxième argument pour une valeur "par défaut" - oui, cela signifie deux instances de données dans votre code, mais c'est une demi-solution.

Je suppose qu'une approche plus SÈCHE serait un couplage de fonctions globales et auxiliaires:

$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

En fait, vous pouvez sortir une valeur par défaut. La bonne façon est de définir une valeur par défaut pour votre mod comme ceci:

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