WordPress : image d’arrière-plan personnalisée par défaut non enregistrée dans la base de données lors de la création d’un nouveau site

Publié par Jean-Michel le

Je suis un auteur de thème et le thème que j’ai créé est utilisé dans un environnement multisite. J’ai ajouté la custom_backgroundfonctionnalité à ce thème, avec une image par défaut et tout fonctionne comme prévu : l’utilisateur peut changer l’image et voir le résultat en direct est le Theme Customizer avant de le mettre en ligne.

Voici la déclaration custom_background :

add_action('after_setup_theme', 'user83643_theme_features');
function user83643_theme_features(){
    add_theme_support( 'custom-background' , array(
        'default-color' => '1878A0',
        'default-image' => get_template_directory_uri() . '/img/default.jpg',
        'wp-head-callback' => '__return_false',
    ));
}

Cependant, lorsqu’un nouveau site est créé sur le réseau, l’image par défaut n’apparaît pas dans l’interface. Je peux le voir dans le backend dans le personnalisateur de thème, mais je dois le sauvegarder une fois pour l’activer sur le frontend : get_theme_mod('background_image')revient falseavant de le sauvegarder une fois.

Une idée de comment sauvegarder l’image (et la couleur) par défaut dans la base de données lors de la première activation du thème ?

Solution n°1 trouvée

Je suppose que vous voulez dire  » get_theme_mod('background_image')retourne false » avant que je « sauvegarde une fois pour l’activer »

Si tel est le cas, get_theme_modaccepte un paramètre par défaut. Consultez le codex :

$name (string) (obligatoire) Nom de la modification du thème.

    Default: None

$default (booléen|chaîne) (optionnel)

    Default: false

Passez votre image par défaut comme deuxième paramètre à cette fonction et vous devriez être défini.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *