我一直在尝试使用主题定制器API,并试图为使用定制器所做的更改设置实时预览。
当使用refresh属性时,我使用的设置工作正常,但是当我尝试使用postMessage时,我遇到了一个问题。我编写了必要的代码行,以使设置与实时预览一起工作,但我的浏览器无法识别对自定义程序所做的更改(和保存的更改)。js文件。
我使用的设置:
$wp_customize->add_setting( \'dvekocky_header_title\', array(
\'default\' => esc_html__(\'Simple, Reliable and Awesome.\', \'dvekocky\' ),
\'type\' => \'theme_mod\',
\'transport\' => \'postMessage\'
));
JS代码:
( function( $ ) {
// Site title and description.
wp.customize( \'blogname\', function( value ) {
value.bind( function( to ) {
$( \'.navbar-brand a\' ).text( to );
} );
} );
wp.customize( \'blogdescription\', function( value ) {
value.bind( function( to ) {
$( \'.site-description\' ).text( to );
} );
} );
// Header text color.
wp.customize( \'header_textcolor\', function( value ) {
value.bind( function( to ) {
if ( \'blank\' === to ) {
$( \'.site-title, .site-description\' ).css( {
\'clip\': \'rect(1px, 1px, 1px, 1px)\',
\'position\': \'absolute\'
} );
} else {
$( \'.site-title, .site-description\' ).css( {
\'clip\': \'auto\',
\'color\': to,
\'position\': \'relative\'
} );
}
} );
} );
wp.customize( \'dvekocky_header_title\', function( value ) {
value.bind( function( to ) {
$( \'.intro-section h1\' ).text( to );
} );
} );
wp.customize( \'dvekocky_header_subtitle\', function( value ) {
value.bind( function( to ) {
$( \'.intro-section h5\' ).text( to );
} );
} );
} )( jQuery );
浏览器中检查的JS代码:
( function( $ ) {
// Site title and description.
wp.customize( \'blogname\', function( value ) {
value.bind( function( to ) {
$( \'.site-title a\' ).text( to );
} );
} );
wp.customize( \'blogdescription\', function( value ) {
value.bind( function( to ) {
$( \'.site-description\' ).text( to );
} );
} );
// Header text color.
wp.customize( \'header_textcolor\', function( value ) {
value.bind( function( to ) {
if ( \'blank\' === to ) {
$( \'.site-title, .site-description\' ).css( {
\'clip\': \'rect(1px, 1px, 1px, 1px)\',
\'position\': \'absolute\'
} );
} else {
$( \'.site-title, .site-description\' ).css( {
\'clip\': \'auto\',
\'color\': to,
\'position\': \'relative\'
} );
}
} );
} );
} )( jQuery );
长话短说-即使我保存了脚本,并且在文本编辑器中打开文件时可以看到它们,但脚本的行为就像从未对其进行过任何更改一样。
我希望我能很好地描述我的问题,希望你们中的一些人能帮助我。我不怀疑这个问题是微不足道的,但我就是想不出来。
PS:当我使用刷新方法预览更改时,一切都很顺利。现在,我仍然可以进行更改,但只有在保存时才能看到更改(&A);通过Customizer发布它们,然后手动重新加载页面。