我有很多定制控件,这是我用来为标题创建文本字段的s:
$wp_customize->add_section( \'ju_header_settings\', array(
\'title\' => __(\'Header Settings\', \'_s\'),
\'priority\' => 31
) );
$wp_customize->add_setting( \'header_custom_text_top\', array(
\'default\' => \'talking about\',
\'transport\' => \'refresh\'
) );
$wp_customize->add_control(
new WP_Customize_Control( $wp_customize,
\'header_text_1\',
array(
\'label\' => __( \'Header Text #1\', \'_s\'),
\'section\' => \'ju_header_settings\',
\'settings\' => \'header_custom_text_top\',
\'type\' => \'text\',
)
) );
现在碰巧
now I have multiple headers. Each with a different layout and component added to it.这意味着用户可以从另一个控件中选择要使用的标题:
$wp_customize->add_setting( \'header_style\', array(
\'default\' => \'style-1\',
\'transport\' => \'refresh\'
) );
$wp_customize->add_control(
new WP_Customize_Control( $wp_customize,
\'header_selector\',
array(
\'label\' => __( \'Select the Header You Want\', \'_s\'),
\'section\' => \'ju_header_settings\',
\'settings\' => \'header_style\',
\'type\' => \'radio\',
\'choices\' => array(
\'style-1\' => \'Style One Header\',
\'style-2\' => \'Style Two Header\',
)
)
) );
我的“选择标题”设置是用户应该在看到其他内容之前首先看到的内容。然后,一旦他们选择了主样式,基于他们选择的标题,一组特定的控件(绑定到特定的标题,并且仅限于此)应该动态显示。请记住,这应该发生在同一个Customizer部分中。
以下是我试图实现的目标的模式:
我甚至无法开始这方面的工作,因为网络上没有可以为我指明正确方向的资源。我可以做的是为每个控件插入一个自定义类,并使用JS隐藏我不需要的某些控件,但这感觉非常混乱。尤其要记住垃圾收集,其中需要说明某些事情:
如果用户想要另一种新样式怎么办?我是否缓存他们现在不再使用的样式的设置以供将来使用?
控件本身,我是将它们全部加载到一起,还是在用户从下拉列表中选择时动态加载它们?
我该如何处理这个问题?