web-dev-qa-db-fra.com

get_option dans header.php ne renvoyant pas de valeur du personnaliseur

J'ai configuré une nouvelle section dans le personnalisateur appelée Liens sociaux , sous laquelle j'ai configuré une option et un contrôle de champ de texte appelé Facebook . Voici le code dans mon functions.php :

// SOCIAL LINKS
$wp_customize->add_section( 'social_links_section' , array(
    'title'      => __( 'Social Links', 'my_theme' ),
    'priority'   => 100,
) );
// Facebook
$wp_customize->add_setting( 'social_link_facebook' , array(
    'default' => ''
) );
$wp_customize->add_control(
    'social_link_facebook', 
    array(
        'label'    => __( 'Facebook', 'my_theme' ),
        'section'  => 'social_links_section',
        'settings' => 'social_link_facebook',
        'type'     => 'url',
    )
);

Mais lorsque j'essaie d'obtenir la valeur de social_link_facebook dans les fichiers de modèle de thème, cela ne renvoie rien. Voici le code de mon header.php :

<?php $facebook = get_option( 'social_link_facebook' );
if( !empty($facebook) ) { ?>
    <a href="<?php echo $facebook ?>" target="_blank" ><span class="dashicons dashicons-facebook-alt"></span></a>
<?php } ?>

Une idée pourquoi cela pourrait être?

1
AT92

Il y a deux façons de résoudre ce problème:

1 Conservez les mods tels quels et utilisez get_theme_mod au lieu de get_option

2 Stockez les mods en tant qu’options en modifiant le réglage:

$wp_customize->add_setting( 'social_link_facebook' , array(
    'default' => '',
    'type' => 'option'
) );
0
cjbj