WordPress : paramètres de personnalisation pour la case à cocher (affichage du contenu)
Je fais actuellement une option dans le personnalisateur pour masquer le contenu à l’aide d’une case à cocher, cochez pour afficher et décochez pour masquer. travaille correctement. J’ai parcouru le codex mais je n’arrive pas à trouver de réponse. existe-t-il un moyen d’attribuer des valeurs à la case à cocher ? ci-dessous est mon code : donc par défaut, la case doit être cochée et afficher le contenu. lorsqu’il n’est pas coché, il devrait passer à display: none
// WooCommerce Setting (toggle display - products on homepage)
$wp_customize->add_setting( 'woocommerce_productdisplay' , array(
'default' => 'block',
'transport' => 'refresh',
'sanitize_callback' => '',
) );
// WooCommerce Control (toggle display - products on homepage)
$wp_customize->add_control(
new WP_Customize_Control( $wp_customize, 'woocommerce_productdisplay', array(
'label' => __( 'Display Products on Page', 'woocommerce_productdisplay'),
'section' => 'woocommerce_section',
'type' => 'checkbox',
'settings' => 'woocommerce_productdisplay',
) ) );
// ================================================================================== //
}
add_action( 'customize_register', 'woocommerce_customize_register' );
function woocommerce_customize_css() {
?>
<style>
#woocommerce-container {display: <?php echo get_theme_mod('woocommerce_productdisplay', ''); ?>; }
</style>
<?php
}
add_action( 'wp_head', 'woocommerce_customize_css');
Solution n°1 trouvée
Il semble qu’il vous manque certaines choses dans le tableau des paramètres, à savoir qu’elles doivent type
être theme_mod
ici et capability
qu’elles doivent également être définies. Tu peux essayer:
$wp_customize->add_setting( 'woocommerce_productdisplay' , array(
'type' => 'theme_mod',
'capability' => 'edit_theme_options',
'default' => '1',
'transport' => 'refresh',
'sanitize_callback' => '',
) );
Notez également default
qu’une case à cocher doit être ‘1’ pour cochée. Ensuite, vous utiliseriez un code légèrement différent pour la sortie également avec ceci à l’esprit :
<style>
#woocommerce-container {display: <?php
$display = get_theme_mod('woocommerce_productdisplay', '1');
if ($display) {echo 'block';} else {echo 'none';}
?>; }
</style>
0 commentaire