保存的选项数组数据随机消失

时间:2018-10-24 16:35:01

标签: wordpress

不是Wordpress专家。我继承了一个简单的小插件,该插件允许用户上传图像,然后将其添加到数组中,然后可以添加/编辑该图像的数组值(标题,说明等)。我遇到的问题是它可以在一段时间内正常工作,然后表格突然停止将值保存到db中的option_value中。输入10-15后可能会发生这种情况。我已经验证了发送到options.php的有效负载是正确的。

为什么这个插件会随机停止将数据保存到表中?

我已经注册了选项数组

$djwp_images = get_option('djwp_images');

add_action('admin_init', 'djwp_register_settings');
function djwp_register_settings() {
   register_setting('djwp_images', 'djwp_images');
   register_setting('djwp_settings', 'djwp_settings');
}

下面显示了一个如何遍历表单数组的单个示例。

<form class="djform" method="post" action="options.php">
    <?php foreach ($djwp_images as $id => $data) { ?>
    // Single example shows how and array is used to input values
    <input type="hidden" name="djwp_images[<?= $id; ?>][file_url]"
                       value="<?= $file_url ?>"/>
    <? } ?>
    <?= submit_button(); ?>
</form>

Full source code in pastebin

使用wordpress:4.9.8

1 个答案:

答案 0 :(得分:0)

该问题与WP不直接相关。问题在于,每个循环(在for中)输出大约20个输入。总之,它会输出数百个输入,并且您必须增加服务器上的input_vars数量。将此插入您的functions.php顶部,即可解决:

ini_set('max_input_vars', 3000);
ini_set('post_max_size', '128M');

或更新服务器php.ini中的值(然后重新启动服务器)