JQuery zum Abrufen des Customizer-Werts verwenden

Ich versuche, jQuery zu verwenden, um einen Wert für die Themenoptionen (Customizer) abzurufen:

$wp_customize->add_setting( 'header_fixed', array( 'default' => true, ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'header_fixed', array( 'label' => __( 'Enable fixed navigation?', 'theme' ), 'section' => 'header_section', 'settings' => 'header_fixed', 'type' => 'checkbox', 'priority' => 40, ) ) ); 

Wenn der obige Wert wahr ist, ist das Kopfelement eine feste Position. Wenn nicht, wird es eine relative Position sein (eine class wird mit jQuery hinzugefügt oder nicht). Ich bin nicht sehr kompetent mit jQuery, daher basiert das Folgende auf dem, was in customizer.js von _s kommt:

  wp.customize( 'header_fixed', function( value ) { value.bind( function( to ) { if ( 'true' == to ) { $( '#header-inner' ).addClass( 'fixed' ); } } ); } ); 

Ich habe dies in customizer.js platziert, da dies anderswo zu einem Fehler führt: ‘wp’ ist nicht definiert.

Bearbeiten * Ich stelle das Skript wie folgt ein:

 function theme_customize_preview_js() { wp_enqueue_script( 'theme-customizer', get_template_directory_uri() . '/js/customizer.js', array( 'customize-preview' ) ); } add_action( 'customize_preview_init', 'theme_customize_preview_js' ); 

Bearbeiten ** Dies scheint zu diesem Zeitpunkt nicht ganz möglich zu sein, also habe ich es mit PHP gemacht:

  

Vielen Dank!

Solutions Collecting From Web of "JQuery zum Abrufen des Customizer-Werts verwenden"

Verwenden Sie diesen JQuery-Code aus Ihrer Frage in der Customizer-Vorschau für die Echtzeitaktualisierung. Ihr Transport sollte auf “postMessage” eingestellt sein. In Ihrer Website können Sie in function.php eine Body-class hinzufügen:

 function theme_prefix_body_class( $classes ) { if ( get_theme_mod('header_fixed', 0 ) == true ) { $classes[] = 'fixed-header'; } return $classes; } add_filter( 'body_class', 'theme_prefix_body_class' );