我将对您的问题发表一些小意见。但是又有暗示;我不是JS专家。以下来源提示仅在与Customizer一起使用时用于不同的检查和示例,例如我的sandbox。
wp.customize
了解WP主题定制器界面的重点是了解wp.customize javascript对象。该wp.customize
对象很重要,您应该首先设置它。
现场例子
下面的小示例对此进行了演示。首先,我将var设置api
为定制器的对象。之后,我将自定义字段设置为,api
并使用小型jQuery源对其进行增强,以刷新结果以进行实时预览。
( function( $ ) {
var api = wp.customize;
// Site title and description.
api( 'blogname', function( value ) {
value.bind( function( to ) {
$( '#header h1 a, #footer a.site-name' ).html( to );
} );
} );
api( 'blogdescription', function( value ) {
value.bind( function( to ) {
$( '#header p.site-description' ).html( to );
} );
} );
} )( jQuery );
设定和控制
控制对象存储在中wp.customize.control
,设置对象存储在中wp.customize
。值类具有很多功能,可以为您提供帮助。
- instance(id)–从具有指定ID的集合中获取一个对象。
- has(id)–如果集合包含具有指定id的对象,则返回true,否则返回false。
- add(id,value)–将具有指定id和值的对象添加到集合中。
- remove(id)–从集合中删除对象。
- create(id)–使用默认构造函数创建一个新对象,并将其添加到集合中。
- each(回调,context)–遍历集合中的元素。
自定义设置
使用此功能,我们可以增强自定义设置。
var api = wp.customize,
mysetting = api.instance( 'my_custom_setting' );
也可用于数组
var api = wp.customize,
mysetting = api.instance( 'my_custom_settings[my_custom_setting_field]' );
得到
在控制台中查看结果。
console.log( api.instance( 'my_custom_settings[my_custom_setting_field]' ).get() );
组
您也可以通过功能更改设置值set
。
api.instance( 'my_custom_settings[my_custom_setting_field]' ).set( 'my new value' ) );
以控件作为对象
console.log( api.control.instance( 'my_custom_setting_field' ) );
有用的资料
- wp-admin / js / customize-controls.js
- wp-includes / js / customize-preview.js
- wp-includes / js / customize-base.js
api
是匿名的,但它只是wp.customize
(可在全球范围内访问的)同义词(请参阅第3行)。但是,似乎用于控件的“另一个对象模型”调用了该ready
函数,initialize
因此可能没有机会(即为时已晚)覆盖方法-您要扩展什么?