有两种方法可以处理自定义控件模板:1。使用PHP模板2。使用JS模板。
您上面发布的屏幕截图来自Kirki 插件。Kirki使用JS模板,所以你可以看到这是如何做到的here.为了简单起见,我建议您查看此控件,因为排版控件过于复杂(获取google字体并根据其他选项修改所选下拉列表):https://github.com/aristath/kirki/blob/2.3.5/includes/controls/class-kirki-controls-multicolor-control.php
您基本上必须分别为所有这些输入字段创建标记。。。或者,就像上面的多色控件一样,使用循环。
然后是WordPress定制器API的JS部分。如果你看看https://github.com/aristath/kirki/blob/2.3.5/assets/js/controls/multicolor.js 负责多色控件的文件,您会注意到,在第8行,它获取控件的选项(这是我选择放置所需参数的地方),然后在第47-59行,它对这些选项运行循环并相应地进行处理。
当然,这段代码比需要的要复杂一些,但这只是因为它处理的是颜色选择器。例如,如果使用文本字段、收音机和/或选择字段,则可以将其简化很多。
要构建这样的控件,应遵循以下基本步骤:
构建自定义控件并使用下划线。js模板。这意味着使用content_template()
方法添加模板向定制者的JS API公开您的数据:在您的控制范围内,您必须使用to_json()
方法有关Kirki插件的示例,请参见:https://github.com/aristath/kirki/blob/2.3.5/includes/class-kirki-customize-control.php#L124-L150为控件编写自定义JS脚本,并使用customize_controls_enqueue_scripts
行动在控件的自定义JS脚本中,使用to_json()
方法,然后您可以使用该数据执行任何您想要的操作。如果要为控件保存多个值,必须将它们保存为JS对象,获取每个输入字段的值,并将其值保存为对象中的一个项,使用字段的ID或选择用作对象中键的任何内容