我正在尝试使用jQuery检索主题选项(customizer)值:
$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,
) ) );
如果上述值为true,则标题元素将为固定位置。如果不是,则为相对位置(将使用jQuery添加或不添加类)。我对jQuery不是很在行,所以下面的内容基于customizer中的内容。js,发件人:
wp.customize( \'header_fixed\', function( value ) {
value.bind( function( to ) {
if ( \'true\' == to ) {
$( \'#header-inner\' ).addClass( \'fixed\' );
}
} );
} );
我一直把这个放在customizer中。js在其他地方这样做会导致错误:“wp”未定义。
编辑*我正在按如下方式将脚本排队:
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\' );
编辑**目前这似乎不太可能,所以我用PHP完成了这项工作:
<?php if ( \'\' != get_theme_mod( \'header_fixed\') ) echo \'fixed\'; ?>
谢谢!