Back to Community

Why Your WordPress Menu Links Are Disappearing or Not Saving (And How To Fix It)

25 threads Sep 17, 2025 CoreFixing wordpress

Content

One of the most common and frustrating issues WordPress users face is when menu items fail to save correctly. You add a page or a custom link, but the URL field is blank, the label changes to "Pending" or "Menu Item," and the front-end link is completely broken. This guide will walk you through the most common causes and their solutions.

What Does This Problem Look Like?

Based on numerous community reports, the problem typically manifests in a few specific ways:

  • After adding a custom link, the URL field is empty upon saving the menu.
  • Menu item labels change to "Pending" or generic text like "Menu Item."
  • The front-end menu displays the item text, but the <a> tag has no href attribute, making it unclickable.
  • Adding a page to the menu converts it into a "Custom Link" type with no URL.
  • Critically, this issue often persists even after disabling all plugins and switching to a default WordPress theme.

Why Does This Happen?

This bizarre behavior is rarely caused by your theme or a specific plugin. The most common culprit, as indicated by community troubleshooting, is a server-side configuration limit.

Primary Suspect: The PHP max_input_vars Limit

When you save a menu, WordPress sends a large amount of data to the server. Complex menus with many items can exceed the default value of the max_input_vars directive in your PHP configuration. When this limit is exceeded, the server simply stops processing the input data, which results in menu item properties (like the URL) being truncated and lost.

How to Fix the WordPress Menu Saving Issue

Solution 1: Increase the max_input_vars Value (Most Common Fix)

This is the first and most likely solution you should try. You will need to access your hosting account's control panel (e.g., cPanel).

  1. Log in to your hosting control panel.
  2. Look for sections named "PHP Settings," "Select PHP Version," or "Software."
  3. Within these settings, there is often an option to modify PHP directives. Find max_input_vars.
  4. Increase its value. A common recommended setting is 3000 or 5000.
  5. Save the changes and restart your web service if necessary.

Alternative wp-config.php method: If you cannot change it in your control panel, you can try adding this line to your wp-config.php file, above the line that says /* That's all, stop editing! Happy publishing. */.

@ini_set( 'max_input_vars', 5000 );

Solution 2: Perform a Basic Conflict Test

While the issue often points to a server config, it's good practice to rule out other conflicts.

  1. Clear All Caches: Clear any caching from your plugins, server, or CDN.
  2. Disable All Plugins: Temporarily disable every plugin on your site. Then try to edit and save your menu. If it works, reactivate your plugins one by one to identify the culprit.
  3. Switch to a Default Theme: Temporarily switch to a classic default theme like Twenty Twenty-One. Note: Some modern block themes remove the classic Menus interface under Appearance, so using a classic theme is necessary for this test.

Solution 3: Check for JavaScript Errors

Sometimes, an error in the browser's console can prevent the menu admin screen from working correctly.

  1. While on the Menus admin screen, right-click and select "Inspect" to open your browser's developer tools.
  2. Click on the "Console" tab.
  3. Look for any red error messages.
  4. If you see errors related to the menu script, it could indicate a conflict with a plugin or theme script.

When to Seek Further Help

If the solutions above do not resolve your issue, the problem may be more specific to your hosting environment. In this case, contacting your hosting provider's support team is the best next step. They can confirm your server's PHP configuration values and check for other less common limits that might be causing the problem.

By following these steps, you should be able to resolve the disappearing menu link issue and get your navigation back on track.

Related Support Threads Support