web-dev-qa-db-fra.com

Facebook get_option à jquery

J'ai créé une page de paramètres contenant diverses options de bouton radio pour un plugin personnalisé.

Un bouton radio que j'ai créé consiste à "afficher des points" avec les valeurs oui ou non. Je peux obtenir utiliser la valeur à tout autre moment, sauf dans la fonction jQuery ci-dessous.

Je voudrais obtenir la valeur de l'option à utiliser pour les "points" dans la fonction jQuery ci-dessous.

script jQuery

<script type="text/javascript">
jQuery(document).ready(function(){
  jQuery('.single-item').slick({
    arrows: true,
    dots: ***OPTION VALUE HERE (true or false)***
  });
});

Pour afficher les boutons radio que j'utilise:

 <input type="radio" name="testimonial_bullet" id="mws_testimonial_bullet_yes" value="" checked="checked">Yes
 <input type="radio" name="testimonial_bullet" id="mws_testimonial_bullet_no" value="no" <?php if (checked( get_option('testimonial_bullet'), 'no' )); ?> />No

Pour obtenir la valeur get_option, j'utilise:

if (get_option('testimonial_bullet') == 'no') {
 // code here
}

Toute aide très appréciée

1
rikardo85

Quoi qu'il en soit, Hody_McGee a répondu à cette question dans son commentaire: Vous pouvez utiliser wp_localize_script() . Comme il est dit dans le Codex:

[wp_localize_script()] peut être utilisé pour rendre disponibles à votre script toutes les données que vous pouvez normalement obtenir uniquement à partir du côté serveur de WordPress.

Comment faisons-nous cela?

<?php
add_action( 'wp_enqueue_scripts', 'register_scripts' );
function register_scripts(){
    wp_enqueue_script( 'some_handle', 'path-to-file', array( 'jquery' ) );
    $phpInfo = array(
        'testimonial_bullet' => get_option( 'testimonial_bullet' )
    );
    wp_localize_script( 'some_handle', 'phpInfo', $phpInfo );
}
?>

Vous étendez votre fonction, vous mettez votre script en file d'attente (vous le faites, n'est-ce pas?). Une fois que vous avez fait cela (ou que vous l'avez enregistré), vous pouvez utiliser wp_localize_script() pour transmettre un objet à ce script. Dans notre cas, nous créons un tableau $phpInfo, qui contient les informations de l'option.

Dans votre script, vous pouvez maintenant récupérer le contenu transmis:

jQuery(document).ready(function(){
  if( phpInfo.testimonial_bullet == 'no' )
    var d = '---';
  else
    var d = '...';

  jQuery('.single-item').slick({
    arrows: true,
    dots: d
  });
});

Bien, mais je ne l'envoie pas

J'ajoute ceci, parce que je vois le <script>- Tag, donc ces informations pourraient être intéressantes. Tout d'abord, vous devriez. C'est facile et pratique. Jetez un coup d'œil à wp_enqueue_script() . Si vous pensez toujours, il vaudrait peut-être mieux l'écrire dans le header.php ou foorter.php , bien sûr il pourrait être des raisons de le faire. Dans ce cas, vous pouvez simplement récupérer les informations comme ceci:

<script>
    jQuery(document).ready(function(){
      if( '<?php echo get_option( 'testimonial_bullet' ); ?>' == 'no' )
        var d = '---';
      else
        var d = '...';

      jQuery('.single-item').slick({
        arrows: true,
        dots: d
      });
    });
</script>
4
websupporter