我正在尝试根据下拉列表的值动态加载大量控件,我不想通过PHP加载它们,因为初始页面加载需要15秒以上的时间。我有很多控制。
那么,通过JS实例化设置和(自定义)控件的具体要求是什么呢?
我的自定义控件类是否需要注册并充实content\\u template方法?我的班级需要“类型”设置对吗?(这两件事我都做过)
我可以在PHP中注册设置(这就是我所做的),然后稍后通过JS实例化控件吗?或者我还需要在JS中实例化设置吗?
JS呢?我是否需要在JS实例化中重复我的标记代码?
到目前为止,这就是我所知道的,但实际上什么都没有出现。。很明显,我遗漏了一些基本的东西,但我不确定是什么:
var api = wp.customize;
var sectionID = \'site_variables_section\'; // section.id.replace( \'[\', \'-\' ).replace( \']\', \'\' )
api.controlConstructor.ColorVariable = api.Control.extend({
ready: function() {
var control = this;
wp.customize.Control.prototype.ready.call( control );
}
});
// The control
var controlID = \'site_variables_section[\' + field.name.replace(\'$\', \'\') + \']\';
var controlParams = {
section: sectionID,
label: \'label\',
settings: {
\'default\': controlID
},
active: true,
type: \'ColorVariable\',
};
var control = new api.controlConstructor.ColorVariable( controlID, controlParams );
control.active.validate = function() {
return true;
};
api.control.add( control.id, control );
@weston ruter让我走上了正确的道路,但我仍然对一些事情感到困惑:
1-没有数据自定义设置链接时,如何将值传递到字段/保存?这是由JS处理的吗content_template
2-我看到,当一个控件使用一个设置时,会使用settings参数中的“default”键,但当多个设置时会怎么样,我们如何获取每个设置的值:default
对于2,我能够让它与以下各项协同工作:
settings:{
variable : controlId+\'[variable]\',
control: controlId+\'[control]\',
value: controlId+\'[value]\',
percentage: controlId+\'[percentage]\'
}
我在想类似的事情to_json()
功能:
$this->json[\'percentage_value\'] = $this->value(\'my-settings-id);