定制器在更改时获得控制选择

时间:2018-11-08 作者:user9

我有一个定制的RadioControl,有3种选择:menu-left, menu-right, menu-top. 我希望所选设置作为一个类添加到主体中,而其他设置将被删除。

Example

<body class="class1 menu-left"> 将成为<body class="class1 menu-right">

为了做到这一点,我想在预览中动态读取选项。然而wp.customize.control 在中排队的脚本中不起作用customize_preview_init-行动

我很乐意:

const choices = Object.keys(wp.customize( controlKey ).params.choices).join(" ");
如何读取预览中的控件可用选项?

1 个回复
SO网友:Joy Reynolds

因为这是针对类的,并且需要删除旧值并添加新值,所以需要将该信息发送到预览。我使用了一系列复选框,但对于无线电输入或选择也是同样的问题。仅仅知道新的价值是不够的。

我为控件编写了javascript,用于控件窗格,该窗格使用包含所有可能值的字段初始化控件(在PHP中以json形式发送)。然后,每次用户选择时,都会更新设置值,以包含off值、分隔符和on值。因为我也在课堂上这样做,所以我只用了一个逗号。

然后在预览脚本中,单个值在分隔符上拆分,off值与removeClass()一起使用,on值与addClass()一起使用。

你可以在这里看到完整的代码:https://wordpress.org/themes/twenty8teen

结束

相关推荐