如何修复WordPress中的自定义菜单项限制
几天前,我们的一位用户报告了一个不寻常的问题——他达到了自定义菜单项的限制,之后保存的任何内容都无法保存。我们以前从未听说过这个问题,于是决定在我们的本地安装中进行尝试。创建了200多个菜单项并保存,一切正常。将100个项目移动到下拉菜单也保存得很好。显然,这与服务器配置有关。
通过进一步研究,发现其他很多人也有同样的问题。深入研究,我们找到了一张标记为#14134的跟踪票据(trac ticket),详细描述了这个问题。阅读了长长的跟踪票据后,我们发现问题还没有得到解决,但有一个解决方法。本文将向您展示如何修复WordPress中的自定义菜单项限制。
要解决该问题,您需要编辑PHP.ini文件。如果您使用的是专用服务器或具有根访问权限的VPS,您应该已经知道我们的意思。如果您使用的是共享主机或不知道PHP.ini文件在哪里,请询问您的网络托管提供商为您进行此操作。
您需要让他们在PHP.ini配置中设置以下值:
suhosin.post.max_vars = 5000
suhosin.request.max_vars = 5000
此外,另一位用户“ronnieg”提供了一个解决方法,适用于他的大型房地产网站和菜单(450多个页面并继续增加)。您可以阅读他的响应以进行跟随。(注意:我们没有尝试过这个方法)
问题解释
这个问题并不完全是WordPress的问题,因为不同的人看到的限制不同(有的说是16,有的说是50,而我们已经测试到了200个而没有看到任何限制)。理论上,WordPress并没有限制可以拥有的菜单数量,您的网络主机服务器在起作用。有Suhosin对POST的最大变量数量的限制,限制了保存的大量条目数量。Nacin在跟踪票据中回应称,这不是一个错误,而是一个增强功能。核心团队必须找到一种方法来绕过服务器限制,以更好的方式保存菜单项,这样无论您的服务器配置如何,您都不会看到任何自定义菜单限制。这说起来容易做起来难。
WordPress是一个开源(志愿)项目,核心团队每天都在尽力改进它。这个问题最终会得到解决,但时间表尚未确定,只有“未来版本”的说法。
如果您尝试了其他方法并解决了这个问题,请在评论中告诉我们。这将帮助其他人修复他们的问题,直到核心团队找到解决方法。