WordPress : paramètres de personnalisation pour la case à cocher (affichage du contenu)

Publié par Jean-Michel le

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_modici et capabilityqu’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 defaultqu’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>
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 *