web-dev-qa-db-fra.com

Passer des valeurs booléennes avec wp_localize_script

J'utilise wp_localize_script pour transmettre quelques valeurs de mes options de thème à un fichier javascript. J'ai tout d'abord obtenu les valeurs de mes options de thème:

$options = get_option('theme');  
$flex_auto = $options["slide-auto"];
$flex_animation = $options["slide-animation"];
$flex_direction = $options["slide-direction"];

Ensuite, j'ai utilisé wp_localize_script pour créer mon tableau de valeurs.

wp_enqueue_script('flexslider');
wp_localize_script('flexslider', 'flex_vars', array(
    'flex_auto' => $flex_auto,
    'flex_animation' => $flex_animation,
        'flex_direction' => $flex_direction
    )
);

Dans mon fichier javascript, j'ai fait ceci:

var $anim = flex_vars.flex_animation;
var $auto = flex_vars.flex_auto;
var $dire = flex_vars.flex_direction;

jQuery('.flexslider').flexslider({
    animation: $anim,
    slideshow: $auto,
    controlNav: 'thumbnails',
    directionNav: $dire, 
    slideshowSpeed: 7000,
    animationSpeed: 1000,
    touch: true,
});

Les options de mon thème incluent des valeurs créées avec des cases à cocher qui fonctionnent avec des booléens 0/1 tandis que le plugin jQuery que je utilise fonctionne avec true/false. J'ai essayé de sauvegarder la valeur booléenne sous forme de chaîne en utilisant un menu déroulant avec deux options, true ou false, mais cela ne semble pas fonctionner. Comment puis-je transmettre les valeurs booléennes des options de thème au fichier javascript? Toutes les suggestions et suggestions sont les bienvenues :)

5
charlenemasters

Essaye ça:

$options = get_option( 'theme' );

wp_localize_script( 'flexslider', 'flex_vars', array (
  'flex_auto' => ($options['slide-auto']) ? 'true' : 'false',
  'flex_animation' => $options['slide-animation'],
  'flex_direction' => $options['slide-direction']
) );

En supposant que slide-auto est l'option que vous avez définie comme booléen.

Ce script n'est pas testé, je l'ai directement tapé ici.

4
Mike Madern