Menu Item Save Limit

Knowledgebase Docs » UberMenu 2 » FAQs
USEFUL? 7
UberMenu 2

Please note that this is not an UberMenu issue. It is a server configuration issue. Unfortunately, there is nothing UberMenu can change to fix the issue. You’ll have to work out the solution to remove the POST vars limitation on your server or with your host. Hopefully this FAQ will point you in the right direction.

Some users will experience a limit to the number of items they can add to their menu. Unfortunately, this manifests as all menu items after the first X (X may be 16, 72, 270, or any number), and the rest will be lost.

This limit is NOT imposed by UberMenu. The limit is actually a server configuration issue. There are two common server configuration issues that can cause this problem.

For an in-depth analysis of this WordPress/PHP issue, please refer to my detailed article on the subject: The WordPress Menu Item Limit or: Help! Half my menu items just disappeared!

1. max_input_vars

As of PHP 5.3.9, there is a new PHP ini directive called max_input_vars (which does the same thing as Suhosin’s post.max_vars, below). By default, max_input_vars is set to 1000, which can easily be reached with the WordPress menu system. The solution is to add the following to your php.ini:

max_input_vars = 5000;

(you might start by trying 3000)

Alternatively, you can try placing this in your .htaccess. This won’t work on some servers, so your mileage may vary.

php_value max_input_vars 3000

2. Suhosin

This issue can also occur due to a program called Suhosin which runs on your server. This is a known issue with WordPress, and affects both the standard WordPress Menu System, as well as UberMenu, which is built on top of that system.

In most cases, the solution is as simple as asking your host to increase the max_vars variables in your php.ini.

suhosin.post.max_vars = 5000
suhosin.request.max_vars = 5000

Here are some resources that should be useful for you:

  1. Can’t add more menu [items] to WordPress custom menus
  2. WordPress Trac Ticket detailing the issue

Note that it is inadvisable to have more than 100 menu items on a page for SEO reasons.

If you don’t have access to php.ini

If you’re on shared hosting, you may not have access to the php.ini. In most cases, it is best to contact your host to have them change these values if you are not able to do so yourself. However, on some hosts you can adjust these values in files that you have access to. If these solutions do not work and you do not have access to your php.ini, you’ll need to contact your host to make the changes.

.htaccess

Though many disable it, some hosts will allow you to place PHP directive overrides in the .htaccess file

php_value max_input_vars 3000
.user.ini

If you have a .user.ini file, you can add the following to override the default php.ini value

max_input_vars = 5000;