Beginner's Guide for WordPress - Start your WordPress Blog in minutes.
Choosing the Best
WordPress Hosting
How to Easily
Install WordPress
WordPress Plugins
View all Guides

How to Fix the Custom Menu Items Limit in WordPress

Last updated on by
Follow WPBeginner on YouTube
How to Fix the Custom Menu Items Limit in WordPress

Just a few days ago, one of our users reported an unusual problem. The problem was that he was reaching the custom menu items limit. Anything he saves after he reached the menu item limit would not save at all. We had never heard of this problem, so we decided to give it a try on our local install. Created 200+ menu items and saved it. It worked just fine. Moved 100 items into a dropdown and that saved perfectly fine. At that point, we knew that this had something to do with the server. Upon further research, it seemed that many others were having the same issue. Digging a little deeper, we found a trac ticket (#14134) that highlighted this problem. After reading the very very long trac ticket, it seems that the problem has not been fixed yet, but there is a work around fix for those who are having this issue. In this article, we will show you how to fix the custom menu items limit in WordPress.

To fix the issue, you need to edit your PHP.ini file. If you are on a dedicated server or on a VPS with root access, then you should already know what we are talking about. If you are on a shared hosting or don’t know where PHP.ini file is, then ask your web hosting provider to do this for you.

You need to ask them to set the following values in the PHP.ini configuration: = 5000
suhosin.request.max_vars = 5000

Another user “ronnieg” posted a work around that he has for his large (450+ pages and growing) real estate site and menu. You can read his response to follow along. (Note: we haven’t tried this one)

Explanation of the Problem

This problem is not entirely WordPress based as different folks are seeing different limits (some say 16 others say 50 and as you already know we went as high as 200 without seeing any limits). In theory, WordPress is not limiting the number of menus you can have. Your web hosting server is. There are Suhosin limitations on the POST max variables which is limiting the large number of entries being saved. Nacin replied in the trac ticket to say that this is NOT a bug rather it is an enhancement. The core team has to find a way to work around the server limitations and figure out a better way to save the menu items, so regardless of your server configuration you do not see any custom menu limits. It’s easier said than done :)

WordPress is an open-source (voluntary) project, and the core team does everything they can to improve it every day. This will be fixed, but the timeline isn’t defined yet as it says “Future Releases”.

If you have tried something different that fixed this issue for you, then please let us know in the comments. This will allow others to fix their issue until the core team finds a work around.

Editorial Staff at WPBeginner is a team of WordPress lovers led by Syed Balkhi. Page maintained by Syed Balkhi.

WPBeginner's Video Icon
Our HD-Quality tutorial videos for WordPress Beginners will teach you how to use WordPress to create and manage your own website in about an hour. Get started now »
  • vijay lathiya

    Thanks for tips

    after increasing max_input_vars in php.ini its working.

  • gezginrocker

    Because I’m on shared hosting, putting the php.ini on root folder didn’t work for me. But putting it in wp-admin folder worked. I think this is because nav-menus.php file is in wp-admin folder.

  • Alex

    Create a php.ini file but not in root! ( public_html )
    in “wp-admin” folder then add:

    max_input_vars = 3000;

    I also have :
    upload_max_filesize = 70M;
    post_max_size = 128M;
    upload_tmp_dir = 70M;
    max_input_vars = 3000;
    memory_limit = 256M;

    • JoAnne

      THANK YOU! THANK YOU! THANK YOU! I have been trying to find a solution to fix this for HOURS!!! This did it! Thanks!

    • Maninderpreet Singh

      THANKSS :D

  • Jeffrey de Jongh

    Hi Thanks for this great tip! I had the same issue with UberMenu. Now I’ve added php_value max_input_vars 5000 to my .htaccess file and it solved the problem.

  • Alanna

    I’ve tried a few things without any luck. I had my host make these PHP config changes. I also activated the Memory Bump plugin and then removed it as suggested by some others.

    My theme (Twenty Ten) supports only one menu. I am able to create another menu and make changes there without a problem. I have a live site so I’m a little limited in terms of the amount of experimenting I can do.

    Any other ideas? I’ll try anything at this point.

  • Bhavin

    Thank you so much Mat.This worked Perfect…

  • Matt

    Matt’s suggestion worked for me too, as I do not run suhosin.

    max_input_vars = 5000
    to my php.ini file

    • valente

      Hello, I placed a Php.ini file in wp-admin with max_input_vars = 5000
      but it did not work, does this php file need to be in another directory as well?
      thank you

      • WPBeginner Support

        make sure that you have named the file php.ini and not Php.ini

  • Bart

    I have the same problem, and the Memory Bump Plugin didn’t solve it.

    I contacted my hosting provider, and they said I don’t yet have a php.ini file and that I have to create it, or WP has to create it for me……

    How do I do this?

    • WPBeginner Support

      Bart if your webserver is running php scripts, then it certainly has a php.ini file which your web host can configure if they want to.

  • Zek

    Seems that a simple fix would be for the WP ajax functionality to evaluate the number of items in the list and break it into multiple sequential requests instead of one big request.

    It’s weird to me that the wordpress team didn’t think of this ahead of time but I guess the platform is so robust that they simply have too much on their plate. I may end up doing it myself, but of course I’ll have to do it in a way that won’t get overwritten by future updates. What a pain!

  • Larry

    I am in same situation as Mat Lipe. I was having problems because my server does not have suhosin installed. I was able to fix the problem by adding the directive that Mat posted to my php.ini file. Thanks.

  • Selma

    I just hit the same problem and after days of emailing back and forth with the we hosting support, it’s finally been resolved!

    They did the following changes:

    They added max_input_vars = 5000 in php.ini

    That’s it, and now it works like a charm and I’m adding pages to my hearts content.

    • Piyush

      Hi SELMA,

      Your Solution is work for Me



  • Mat Lipe


    My server is not running suhosin so I was able to fix this issue by adding this to my php.ini file and restarting my server.

    max_input_vars = 5000

    Hope this helps anyone else out there with the same issue

    • Nix

      This worked, thanks!

    • Elyashiv

      Excellent!! work for me/

    • Luyen Dao

      Thanks Mat! I was going nuts trying to add suhosin then realized i don’t even have it setup!

    • Michael

      Wow! Thank you so much Matt. This works awesome!!!

  • Dale

    Thanks for this.

    I experienced this quite a while back and thought it had something to do with the memory allocation.

    I eventually was able to add more menus after activating the Memory Bump Plugin ( ) from WordPressdotorg

    I deactivated the plugin afterwards.

    Was quick and easy without messing with any code.