WordPress : Personnalisateur de thème : comment saisir la valeur plus tard ?

Publié par Jean-Michel le

Je travaille sur un site personnalisé, faisant tout mon travail dans un thème enfant. Je dois ajouter une variable, la vitesse du curseur, au système de contrôle personnalisé. J’ai pu modifier les contrôles personnalisés via les ajouts suivants à mon fichier functions.php de thème enfant :

function Primm_customize_register( $wp_customize ) {

$wp_customize->add_section( 'primm_section' , array(
    'title'     => __( 'Primm Home Page', 'Divi-child' ),
    'capability' => 'edit_theme_options',
    'description' => 'Setting options for home page'
) );

$wp_customize->add_setting(
   // ID
   'primm_slider_speed',
   // Arguments array
   array(
       'default' => '5000',
       'type' => 'option'
   )
);
$wp_customize->add_control(
    // ID
    'primm_slider_speed',
    // Arguments array
    array(
        'label' => __( 'Cycle Time on Slider (0.001 secs)', 'Divi-child' ),
        'section' => 'primm_section',
        'type' => 'text',
        // This last one must match setting ID from above
        'settings' => 'primm_slider_speed'
    )
);
}
 add_action( 'customize_register', 'Primm_customize_register' );

Ce truc semble bien fonctionner. Je peux apporter des modifications dans le menu personnalisé de l’administrateur, enregistrer les paramètres et voir qu’une valeur semble « définie ». D’un autre côté, j’essaie d’appeler cette variable depuis mon fichier home.php.

 $slider_timing= get_theme_mod('primm_slider_speed');
 echo("Slider Timing: ".$slider_timing);  // test only
 var_dump($slider_timing);

échec total. Voici ma réponse :

 Slider Timing: bool(false)

J’ai travaillé dessus pendant des heures. Il me manque quelque chose, mais ce n’est pas clair pour moi quoi. Remarque : mon thème enfant est « Divi-child » (basé sur le nom du répertoire à la racine/wp-content/themes/Divi-child ) Comment puis-je autoriser les utilisateurs administrateurs à définir une valeur dans ‘stockage’, puis à la récupérer ultérieurement ? Merci beaucoup, Zip.

Solution n°1 trouvée

J’ai fait un changement…

 $wp_customize->add_setting(
        // ID
        'primm_slider_speed',
        // Arguments array
        array(
            'default' => '5000',
            'type' => 'theme_mod'    <-- made change right here.
        )
     );

'type' = 'option'n’a tout simplement pas fonctionné. 'type' = 'theme_mod'totalement cloué.

Option définie manuellement sur 6200, appuyez sur Enregistrer. Rafraîchir la page d’accueil. Sortie maintenant :

 Slider Timing: 6200string(4) "6200"

Big Aïe… les choix pour type = 'option'ou 'theme_mod'suivis de mon appel ultérieur à get_theme_mod()… Lequel pensez-vous fonctionnera ? (indice : duh)

Informations fournies ici pour toute personne susceptible de rencontrer le même problème.

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 *