Débutant PHP ici, et j'ai ceci sur mon functions.php
function mcs_social($wp_customize){
$wp_customize->add_section('mcs_social_handle', array(
'title' => __('Social Network Handles', 'mcs'),
'description' => 'i.e., Acme Company\'s Facebook is https://facebook.com/acmecompany then enter "acmecompany"',
'priority' => 70,
));
// =============================
// = Facebook =
// =============================
$wp_customize->add_setting('mcs_fb_op', array(
'default' => '',
'capability' => 'edit_theme_options',
'type' => 'option',
));
$wp_customize->add_control('mcs_fb', array(
'label' => __('Facebook Handle', 'mcs'),
'section' => 'mcs_social_handle',
'settings' => 'mcs_fb_op',
));
// =============================
// = Twitter =
// =============================
$wp_customize->add_setting('mcs_tw_op', array(
'default' => '',
'capability' => 'edit_theme_options',
'type' => 'option',
));
$wp_customize->add_control('mcs_tw', array(
'label' => __('Twitter Handle', 'mcs'),
'section' => 'mcs_social_handle',
'settings' => 'mcs_tw_op',
));
// =============================
// = RSS =
// =============================
$wp_customize->add_setting('mcs_rs_op', array(
'default' => 'rss2_url',
'capability' => 'edit_theme_options',
'type' => 'option',
));
$wp_customize->add_control( 'mcs_rs', array(
'settings' => 'mcs_rs_op',
'label' => 'RSS Feed',
'section' => 'mcs_social_handle',
'type' => 'select',
'choices' => array(
'rdf_url' => 'RDF/RSS 1.0 feed',
'rss2_url' => 'RSS 2.0 feed',
'atom_url' => 'Atom feed',
),
));
}
//add
add_action( 'customize_register', 'mcs_social' );
Comme vous pouvez le constater, il s’agit d’une copie flagrante de l’exemple figurant dans le WordPress Codex .
Maintenant, cela fonctionne parfaitement. Lorsque je vais à Apparence -> Personnaliser, je vois la section du pseudo social et peux ajouter et enregistrer dans une zone de texte et effectuer une sélection à partir de la sélection.
Mon problème est maintenant, je n'arrive pas à saisir les valeurs à utiliser dans les modèles. J'ai d'autres sections de personnalisation avec 1 paramètre dans le personnaliseur (c'est-à-dire l'image du logo) et elles fonctionnent parfaitement, mais lorsque j'utilise le même get_theme_mod () pour les paramètres "sociaux", rien ne se produit.
<div class="blue-social-box">
<h5>Follow us on:</h5>
<ul>
<?php if ( get_theme_mod( 'mcs_fb_op' ) ) : ?>
<li>
<figure><a href="https://www.facebook.com/<?php echo esc_url( get_theme_mod( 'mcs_fb_op' ) ); ?>" target="_blank"><img src="<?php echo $fbImg; ?>" /></a></figure>
<label><a href="https://www.facebook.com/<?php echo esc_url( get_theme_mod( 'mcs_fb_op' ) ); ?>" target="_blank">Facebook</a></label>
</li>
<?php elseif ( get_theme_mod( 'mcs_fb_op' ) ) : ?>
<li>
<figure><a href="https://www.Twitter.com/<?php echo esc_url( get_theme_mod( 'mcs_tw_op' ) ); ?>" target="_blank"><img src="<?php echo $twImg; ?>" /></a></figure>
<label><a href="https://www.Twitter.com/<?php echo esc_url( get_theme_mod( 'mcs_tw_op' ) ); ?>" target="_blank">Twitter</a></label>
</li>
<?php
elseif ( get_theme_mod( 'mcs_rs_op' ) ) :
$rssType = esc_url(get_theme_mod('mcs_rs_op'));
?>
<li>
<figure><a href="<?php bloginfo($rssType); ?>" target="_blank"><img src="<?php echo $rsImg; ?>" /></a></figure>
<label><a href="<?php bloginfo($rssType); ?>" target="_blank">RSS Feed</a></label>
</li>
<?php else : //Nothing ?>
<?php endif; ?>
</ul>
</div>
Je n'ai trouvé aucun élément utile dans la documentation, alors quelle est la bonne façon de saisir ces valeurs?
Votre code est bon sauf dans add_setting
. Vous avez affecté option
pour le paramètre type
. Cela permettra d'économiser une option distincte pour chaque champ. Si vous utilisez theme_mod
, cela résoudra votre problème.
'type' => 'theme_mod',