我正在我的主题中使用Wordpress定制器。现在假设我想创建一种具有3个选项的项目(在本例中,一个图像和2个输入),我想让用户创建其中的许多选项。我知道如何创建文本输入:
$wp_customizer->add_setting(\'fantastic-input\', array(
\'type\' => \'theme_mod\',
\'default\' => \'Make something fantastic!\'
));
$wp_customizer->add_control(\'fantastic-input-opt\', array(
\'type\' => \'input\',
\'section\' => \'fantastic-section\',
\'settings\' => \'fantastic-input\',
\'label\' => _(\'Input something fantastic here\'),
\'description\' => \'This input is fantastic!\'
));
并添加图像选择器:
$wp_customizer->add_setting(\'fantastic-image\', array(
\'type\' => \'theme_mod\',
\'default\' => \'\'
));
$wp_customizer->add_control(new WP_Customize_Image_Control (
$wp_customizer,
\'fantastic-image\',
array(
\'label\' => _(\'Best image ever\'),
\'section\' => \'fantastic-section\',
)
));
但是如果我不想让这成为唯一的一个呢?非常感谢。
EDIT
我正在考虑一个可能的解决方案,即创建一个包含所有必需字段的自定义控件,扩展
WP_Customize_Control
. 我可以想一些方法将它们全部编码为json字符串,或者一些使它们易于一起管理的方法。自定义控件的可能代码:
class Custom_Control extends WP_Customize_Control {
public $type = \'my-custom-control\';
//As seen by admin
public function render_content() {
$picture = new WP_Customize_Image_Control();
$picture->render_content();
?>
<input type="text" name="title" placeholder="" />
<input type="text" name="cta" placeholder="" />
<textarea name="textbody"></textarea>
<?php
}
//Load js to handle this
public function enqueue () {
wp_enqueue_script(\'something.js\', \'somepath\', array( \'jquery\' ));
}
}
这样可以吗?那么图片控件呢?如何将其包括在内?