不是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>
使用wordpress:4.9.8
答案 0 :(得分:0)
该问题与WP不直接相关。问题在于,每个循环(在for
中)输出大约20个输入。总之,它会输出数百个输入,并且您必须增加服务器上的input_vars
数量。将此插入您的functions.php
顶部,即可解决:
ini_set('max_input_vars', 3000);
ini_set('post_max_size', '128M');
或更新服务器php.ini
中的值(然后重新启动服务器)