Wordpress设置API:动态数组值

时间:2015-12-21 12:05:13

标签: javascript arrays wordpress settings

我正在构建我的第一个Wordpress插件,并且在实现我想要的功能方面遇到了一些麻烦。

基本上我尝试做的是将动态数组保存到options.php

我会尝试更深入地解释功能。基本上,用户将从所有可用post_types的下拉列表中选择post_type,包括自定义帖子类型。使用jQuery,我在该下拉列表中检测状态更改,然后发布到插件中的函数,该函数将输出与所选post_type关联的所有可用field_types作为标签和复选框。

https://www.dropbox.com/s/zacpvq85c5u9lrq/Screen%20Shot%202015-12-21%20at%2012.01.12.png?dl=0

https://www.dropbox.com/s/txyigfe81k0wd1i/Screen%20Shot%202015-12-21%20at%2012.01.23.png?dl=0

我可以确定检查了哪些复选框并创建了它们的javascript数组,如何获取此数组,然后将其保存为预先配置的setting_field

到目前为止我得到了什么。

我输出所有当前的post_types作为选择输入的一部分。

    <select name="comparison_pt" id="comparison_pt" value="<?php echo get_option('comparison_pt'); ?>" value="<?php echo get_option('comparison_pt'); ?>">
            <?php 
                $types = get_post_types(array());
                $fields = get_fields();

                foreach($types as $type) { ?>
                    <option value='<?php echo $type; ?>'><?php echo $type; ?></option>
          <?php } ?>
    </select>

根据上述下拉菜单中的所选选项

$('#settings_post_type').change(function() {
            var selected_post_type = $('#settings_post_type option:selected').text();

            $.ajax({
                url: plugin_object.admin_url,
                type: 'POST',
                data: {
                    action: 'get_settings_field_values',
                    type: selected_post_type
                },
                success: function(response) {
                    console.log('AJAX POST => SUCCESS');
                    $('#settings_field_types').text('');
                    $('#settings_field_types').append(response);
                },
                error: function(response) {
                    console.log('AJAX POST => ERROR');
                    console.log(response);
                }
            });

        });

我使用选定的值作为WP_Query post_type参数,只返回1个帖子并使用它来确定该帖子的可用field_types。

这会输出许多标签和复选框,如所提供的图像中所示,当它们被点击时,我有一个功能来检测哪些复选框被检查,然后将它们推入一个数组,例如var selected = ['population', 'growth_pa'];

我想将这个数组保存在wordpress中,作为已经预定义的settings_field。

add_settings_field("comparison_ft", "Comparison Field Types", "display_fields_form_element", "plugin-options", "options_section");

0 个答案:

没有答案