就在几天前,我们的一位用户报告了一个不寻常的问题。问题是他达到了自定义菜单项限制。达到菜单项限制后他保存的任何内容都不会保存。我们从来没有听说过这个问题,所以我们决定在我们的本地安装上尝试一下。创建了 200 多个菜单项并将其保存。它工作得很好。将 100 个项目移动到下拉列表中,并且保存得非常好。那时,我们知道这与服务器有关。经过进一步研究,似乎许多其他人也遇到了同样的问题。再深入一点,我们发现了一张 trac 票(#14134) 突出了这个问题。在阅读了非常长的 trac 票后,似乎问题还没有得到解决,但是对于那些遇到这个问题的人来说,有一个解决方法。在本文中,我们将向您展示如何修复 WordPress 中的自定义菜单项限制。
要解决此问题,您需要编辑 PHP.ini 文件。如果您在专用服务器或具有 root 访问权限的VPS上,那么您应该已经知道我们在说什么。如果您在共享主机上或不知道 PHP.ini 文件在哪里,请让您的网络托管服务提供商为您执行此操作。
您需要让他们在 PHP.ini 配置中设置以下值:
suhosin.post.max_vars = 5000suhosin.request.max_vars = 5000
另一位用户“ronnieg”发布了他为他的大型(450 多页和不断增长的)房地产网站和菜单所做的工作。您可以阅读他的回复以跟进。(注:这个我们没试过)
问题说明
这个问题并不完全基于 WordPress,因为不同的人看到了不同的限制(有人说 16 其他人说 50,而你已经知道我们高达 200 没有看到任何限制)。理论上,WordPress 并不限制您可以拥有的菜单数量。您的网络托管服务器是。POST 最大变量存在 Suhosin 限制,这限制了保存的大量条目。Nacin 在 trac 票中回复说这不是错误,而是增强。核心团队必须找到一种方法来解决服务器限制并找出更好的方法来保存菜单项,因此无论您的服务器配置如何,您都不会看到任何自定义菜单限制。说起来容易做起来难
WordPress 是一个开源(自愿)项目,核心团队每天都在竭尽全力改进它。这将得到修复,但尚未定义时间表,因为它说“未来版本”。
如果您尝试了不同的方法来解决此问题,请在评论中告诉我们。这将允许其他人解决他们的问题,直到核心团队找到解决方法。