web-dev-qa-db-fra.com

Personnalisateur de thème: Comment récupérez-vous la valeur plus tard?

Je travaille sur un site personnalisé, faisant tout mon travail dans un thème pour enfants. Je dois ajouter une variable, la vitesse du curseur, au système de commande de personnalisation. 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'autre part, j'essaie d'appeler cette variable à partir de 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)             

Travaille dessus depuis des heures. Il me manque quelque chose, mais ce n'est tout simplement pas clair pour moi. Remarque: le thème de mon enfant est "Divi-child" (basé sur le nom du répertoire situé à la racine/wp-content/themes/Divi-child). Avez-vous déjà discuté de la thématique générale de personnalisation du thème Wordpress? Comment autoriser les utilisateurs admin à définir une valeur dans 'storage' puis à la récupérer ultérieurement? Merci beaucoup, Zip.

3
zipzit

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, cliquez sur Enregistrer. Actualiser la page d'accueil. Sortie maintenant:

 Slider Timing: 6200string(4) "6200" 

Big Ouch ... les choix pour type = 'option' ou 'theme_mod' suivis de mon appel ultérieur à get_theme_mod()... Lequel fonctionnera-t-il? (indice: duh)

Les informations fournies ici pour quiconque peut rencontrer le même problème.

1
zipzit