max_input_vars = 2000
suhosin.post.max_vars = 2000
suhosin.request.max_vars = 2000
我们在测试 wordpress 网站时,遇到一个关于菜单的奇怪问题。当菜单项数量很多时,保存菜单时末尾的几项会丢失,连菜单位置的设定也没了。具体的说,我创建了一个菜单,大概有 80 多个菜单项,这 80 多个是直接用 WordPress import 工具导入的测试数据。但当我想修改菜单,增加几项时,问题就来了,只要多加一个,排在最后的菜单必定会消失一个,连菜单位置的设定也没了,导致无法增加更多的菜单项。
google 了一下,发现答案,原来是服务器问题,php 5.3.9 后增加了一项叫做 max_input_vars,默认值 1000,即表单一次可以提交 1000 个变量。超过了怎么办,只能被截断,也就是说传到 WordPress 的数据早就被服务器截断了,丢失了,WordPress 只能对着残缺不全的数据哑巴吃黄连。
打开 php.ini 搜索 max_input_vars ,其中 max_input_vars = 1000 后面的 1000 修改为 2000 或者更大的数字,并且去掉前面的封号)
拷贝一份 php.ini,放到 wp-admin 目录下,在 php.ini 里加上这几项,问题就可以解决,放到网站根目录下只能改变前台的设置,影响不到后台。
max_input_vars = 2000
suhosin.post.max_vars = 2000
suhosin.request.max_vars = 2000
虽说 max_input_vars 是从 php 5.3.9 开始有的,但我用的是 php 5.3.28,也有这个变量。如果遇到这个问题,php 版本又没到 5.3.9,php.ini 里也没这项,直接加上就好。
专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!