Passando valores booleanos com wp_localize_script

4

Estou usando o wp_localize_script para passar alguns valores das minhas opções de tema para um arquivo javascript. Primeiro eu peguei os valores das minhas opções de tema:

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

Então usei wp_localize_script para criar minha matriz de valores.

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

No meu arquivo javascript eu fiz isso:

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,
});

Minhas opções de tema incluem alguns valores que são feitos com caixas de seleção que funcionam com 0/1 booleanos, enquanto o plugin jQuery que estou usando funciona com verdadeiro / falso. Tentei salvar o valor booleano como strings usando um menu suspenso com duas opções, verdadeiro ou falso, mas isso não parece funcionar. Como posso passar os valores booleanos das opções do tema para o arquivo javascript? Todas as sugestões e dicas são muito bem vindas:)

    
por charlenemasters 05.07.2013 / 12:05

1 resposta

4

Tente isto:

$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']
) );

Assumindo que slide-auto é a opção que você criou como booleano.

Este script não foi testado, eu digitei diretamente aqui.

    
por Mike Madern 05.07.2013 / 12:13