it-swarm.com.de

Füge get_option zu jquery hinzu

Ich habe eine Einstellungsseite erstellt, die verschiedene Optionsfelder für ein benutzerdefiniertes Plugin enthält.

Ein Optionsfeld, das ich erstellt habe, soll "Punkte" mit den Werten Ja oder Nein anzeigen. Ich kann den Wert zu jeder anderen Zeit außer in der folgenden jQuery-Funktion verwenden.

Ich möchte den Wert der Option abrufen, die für "Punkte" in der folgenden jQuery-Funktion verwendet werden soll.

jQuery-Skript

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

So zeigen Sie die Optionsfelder an, die ich verwende:

 <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

Um den get_option-Wert zu erhalten, verwende ich:

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

Jede Hilfe sehr geschätzt

1
rikardo85

Grundsätzlich gab Hody_McGee die Antwort in seinem Kommentar: Sie könnten wp_localize_script() verwenden. Wie es im Kodex heißt:

[wp_localize_script()] kann verwendet werden, um alle Daten für Ihr Skript verfügbar zu machen, die Sie normalerweise nur von der Serverseite von WordPress erhalten können.

Wie machen wir das?

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

Sie erweitern Ihre Funktion, indem Sie Ihr Skript in die Warteschlange stellen (Sie stellen es in die Warteschlange, richtig?). Nachdem Sie dies getan haben (oder registriert haben), können Sie mit wp_localize_script() ein Objekt an dieses Skript übergeben. In unserem Fall erstellen wir ein Array $phpInfo, das die Informationen der Option enthält.

In Ihrem Skript können Sie jetzt den übergebenen Inhalt abrufen:

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

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

Nun, aber ich reiche nicht ein

Ich füge dies hinzu, weil ich das <script>- Tag sehe, daher könnten diese Informationen interessant sein. Zunächst sollten Sie. Es ist einfach und gute Praxis. Schauen Sie sich wp_enqueue_script() an. Denkst du immer noch, es ist vielleicht besser, es in die header.php oder foorter.php zu schreiben Gründe dafür sein. In diesem Fall können Sie die Informationen einfach wie folgt abrufen:

<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