在定制器中创建可排序部分时出现的问题

时间:2018-07-09 作者:seeker

假设我在wordpress customizer中有三个部分。我正在将js文件排入队列admin_enqueue_scripts 行动(我应该把它排队吗customize_controls_enqueue_scripts ? )

我正在使用get_option(\'section_names\') 然后使用foreach loop 创建三个部分。

在js文件中,我使用的是jquery UIsortable(\'serialize\') 并使用ajax将新的节顺序发送到php文件。然后该php文件使用update_option(\'option_name\', $_POST[\'list_items\']) 更新数据库。

因此,每当节的顺序发生变化时,数据库就会得到更新。但我想要的是永久性更改(数据库更改)应该在单击发布按钮时发生。程序是什么?

以下代码用于填充customizer中的部分(使用kirki toolkit):

$sortable_sections = get_option(\'sortable_sections\');

foreach ($sortable_sections as $sortable_section) {
    Kirki::add_section( $sortable_section, array(
        \'title\'          => esc_attr__( strtoupper($sortable_section), \'airspace\' ),
        \'description\'    => esc_attr__( \'Insert content about this section\', \'airspace\' ),
        \'panel\'          => \'frontpage_panel\',
    ) );
}

1 个回复
SO网友:mmm

当您为自定义添加新字段时,WordPress会处理值的保存、检索和预览方式
这样就不必通过AJAX调用保存值。

您只需添加存储分区订单的新字段。然后使用JavaScript修改此字段的值并使用field.trigger("change") 发送更改。

也可以对此字段使用自定义类:
https://developer.wordpress.org/themes/customize-api/customizer-objects/#core-custom-controls

结束