Tutoriales de WordPress de Confianza, cuando más los necesitas.
Guía para Principiantes de WordPress
Copa WPB
30 Millones+
Sitios web que usan nuestros plugins
20+
Años de experiencia en WordPress
3000+
Tutoriales de WordPress de expertos

Cómo solucionar el límite de elementos de menú personalizados en WordPress

Si has agregado varios elementos a tu menú de WordPress y algunos se niegan a guardarse, o peor aún, desaparecen por completo, es probable que hayas alcanzado el límite max_input_vars de tu servidor. Esta configuración limita cuántos campos de entrada acepta PHP en una sola solicitud, y los elementos del menú pueden superarte rápidamente ese límite.

WordPress solucionó el error subyacente en la versión 4.5.3. Si sigues teniendo este problema, generalmente es causado por un tema, plugin o constructor de páginas que te excede el límite de tu servidor.

En este artículo, te mostraremos cómo solucionar el límite de elementos de menú personalizados en WordPress.

Cómo solucionar el límite de elementos de menú personalizados en WordPress

¿Qué causa el límite de elementos del menú?

El límite de elementos de menú personalizados en WordPress generalmente es causado por la configuración max_input_vars de PHP de tu servidor. Esta configuración controla cuántos campos de formulario puede aceptar PHP al guardar un menú de WordPress. La mayoría de los servidores la establecen en 1,000 por defecto.

Cada elemento de menú utiliza múltiples campos de formulario, incluyendo la etiqueta, URL, destino, clases CSS y más. A medida que tu menú crece, el número total de campos puede eventualmente exceder este límite. Cuando eso sucede, PHP puede dejar de procesar algunos de los campos al guardar el menú, haciendo que algunos elementos desaparezcan.

Si todavía estás viendo este error hoy, tu tema, constructor de páginas o un plugin pueden estar agregando campos adicionales al formulario del menú o cambiando cómo se guarda el menú. Es posible que veas un mensaje como "PHP max input vars debe ser al menos 5000."

Si algunos elementos del menú han desaparecido, aún no vuelvas a guardar el menú. Hacerlo podría sobrescribir el menú con los elementos faltantes. Primero soluciona el límite de variables de entrada, luego regresa al menú y restaura los elementos faltantes.

Dicho esto, te mostraremos cómo solucionar el límite de elementos de menú personalizados en WordPress. Aquí tienes todo lo que cubriremos en este artículo:

Paso 1: Actualiza WordPress y revisa tu límite actual

Primero, asegúrate de que WordPress esté ejecutando la última versión. Esto por sí solo resuelve la versión clásica de este error.

Ve a Panel de control » Actualizaciones e instala las actualizaciones principales pendientes.

Pantalla de actualizaciones del panel de administración de WordPress

A continuación, verifica a qué está configurado actualmente max_input_vars de tu servidor.

Ve a Herramientas » Salud del sitio » Info, luego abre la sección 'Servidor'. Verás max_input_vars listado con su valor actual.

Comprobando max_input_vars dentro de la información del servidor de Salud del sitio

Si es inferior a 1,000, o si tu tema o plugin requieren específicamente un número mayor, necesitarás aumentarlo usando uno de los métodos a continuación.

Método 1: Aumenta el límite en tu panel de hosting

Muchos hosts de WordPress te permiten cambiar la configuración de PHP sin tocar ningún archivo. En hosts que usan cPanel, esto se hace a través del Editor MultiPHP INI.

Primero, inicia sesión en cPanel y navega a Software » Editor MultiPHP INI.

Accediendo al Editor MultiPHP INI dentro de cPanel

A continuación, selecciona tu dominio del menú desplegable y luego busca 'max_input_vars' y configúralo en '5000'. Haz clic en 'Aplicar'.

Configurando max_input_vars dentro de cPanel

Si tu host no usa cPanel, busca una pantalla de 'Configuración de PHP' o 'Configuración de PHP' en tu panel de hosting. La mayoría de los hosts de WordPress administrados ofrecen algo similar.

Método 2: Edita tu archivo .user.ini o php.ini

💡 Importante: Editar .user.ini o php.ini puede afectar a todo tu sitio web. Es una buena idea crear una copia de seguridad completa de WordPress antes de realizar cambios.

Si tu proveedor de hosting no ofrece un panel de configuración de PHP, puedes aumentar el límite de max_input_vars editando un archivo de configuración de PHP.

La mayoría de los hosts compartidos usan un archivo .user.ini, que generalmente puedes encontrar en la carpeta raíz de tu WordPress. Algunas configuraciones de servidor usan php.ini en su lugar.

Abre el archivo apropiado con el administrador de archivos de tu hosting o un cliente FTP y agrega:

max_input_vars = 5000

Guarda el archivo y súbelo de nuevo a la misma ubicación si es necesario. Ten en cuenta que los cambios en .user.ini suelen tardar unos minutos en surtir efecto.

Editando php.ini para max_input_vars

¿No estás seguro de qué archivo editar o dónde encontrarlo? Consulta nuestra guía sobre dónde está php.ini en WordPress para obtener instrucciones específicas de cada proveedor.

Método 3: Edita tu archivo .htaccess

💡 Importante: Un error de sintaxis en .htaccess puede dejar todo tu sitio fuera de línea con un Error Interno del Servidor 500. Haz una copia de seguridad de tu sitio antes de editar este archivo.

Si tu sitio se ejecuta en un servidor Apache, también puedes aumentar el límite de max_input_vars a través de tu archivo .htaccess. Este archivo de configuración del servidor generalmente se encuentra en el directorio raíz de tu WordPress.

Abre el archivo .htaccess con el administrador de archivos de tu hosting o un cliente FTP y añade:

php_value max_input_vars 5000
Editando .htaccess para max_input_vars

Guarda el archivo y vuelve a comprobar tu menú de WordPress.

Ten en cuenta que este método es solo para Apache. Si tu sitio deja de funcionar después de guardar, elimina la línea que acabas de añadir e intenta uno de los otros métodos.

¿No puedes ver tu archivo .htaccess? Consulta nuestra guía completa sobre cómo encontrar tu archivo .htaccess.

Método 4: Pregúntale a tu proveedor de hosting

Si ninguno de los anteriores es accesible para ti, la mayoría de los proveedores de hosting te harán este cambio. Puedes copiar y pegar este mensaje a su equipo de soporte:

Hola, ¿podrían por favor aumentar la configuración PHP de max_input_vars a 5000 para mi sitio? Estoy teniendo un problema al guardar el menú de WordPress causado por el límite actual. ¡Gracias!

Si estás buscando un proveedor de hosting que te dé más control directo sobre la configuración de PHP, consulta nuestra guía sobre el mejor hosting para WordPress.

Verifica la solución

Una vez que hayas aumentado el límite de max_input_vars, es una buena idea verificar que el nuevo valor esté activo antes de reconstruir tu menú.

Simplemente dirígete a Herramientas » Salud del sitio » Info » Servidor y confirma que max_input_vars ahora muestra 5000 (o tu nuevo valor).

max_input_vars aumentado en la información del servidor de Salud del sitio

Luego, puedes ir a Apariencia » Menús, reconstruir cualquier elemento faltante y guardar. Tu menú completo debería guardarse ahora sin omitir nada.

¿Elementos del menú desaparecen o no se guardan en WordPress? Aquí te mostramos cómo solucionarlo encontrando y aumentando el límite max_input_vars de tu servidor, además de lo que no funciona.

  • Desactiva tus plugins uno por uno, guardando el menú después de cada uno, para encontrar el que está en conflicto.
  • Si estás utilizando un tema de bloques, ten en cuenta que el bloque de Navegación del Editor del Sitio almacena los datos del menú de manera diferente y no se ve afectado por este límite en absoluto.
  • ¿Gestionando un menú muy grande (más de 100 elementos)? Nuestras guías sobre cómo añadir un menú de navegación en WordPress y nuestro tutorial de mega menú cubren enfoques diseñados para menús más grandes.

Esperamos que esta guía te haya ayudado a solucionar el límite de elementos de menú personalizados en WordPress. A continuación, es posible que desees consultar nuestras guías sobre cómo solucionar errores de WordPress o cómo mejorar el rendimiento de WordPress.

Divulgación: Nuestro contenido es compatible con el lector. Esto significa que si haces clic en algunos de nuestros enlaces, podemos ganar una comisión. Consulta cómo se financia WPBeginner, por qué es importante y cómo puedes apoyarnos. Aquí está nuestro proceso editorial.

El Kit de herramientas definitivo para WordPress

Obtén acceso GRATUITO a nuestro kit de herramientas: ¡una colección de productos y recursos relacionados con WordPress que todo profesional debería tener!

Interacciones del lector

80 ComentariosDejar una respuesta

  1. Hola

    Apariencia -> Menú -> al hacer clic -> redirigiendo a -> página 404

    He agregado algunos menús principales y categorías en mi sitio web. Después de un tiempo, no pude abrir el menú para modificar o eliminar nada. Mi sitio web se redirige a la página 404. He probado muchos códigos pero nada funciona. Por favor, ayúdame.

  2. Me encontré con el mismo problema... pero estoy en localhost... ¡así que no tengo a nadie a quien pedir ayuda! (Windows 10/XAMPP/WP4.8). Soy nuevo en WP, ¡ni siquiera sé dónde encontrar php.ini! Mi "solución rápida" fue eliminar algunos elementos de submenú menos importantes. Pero quiero volver a ponerlos todos. Revisé el aumento de memoria mencionado anteriormente, pero es antiguo. Podría no funcionar en WP4.8. ¡No vale la pena el riesgo!

  3. Hola.

    Gracias por la excelente información. Finalmente resolví el problema en el hosting de GoDaddy creando un archivo ph5.ini en el Webroot con la siguiente información:

    memory_limit = 256M;
    max_execution_time = 300;
    max_input_vars = 3000;

    resolví el problema después de que el servicio al cliente reiniciara la base de datos, algo que yo no pude hacer. Espero que esto ayude.

  4. Hola, gracias por esto

    Corrí y tuve este problema. Tenía un menú largo y algunos días se redujo a solo 50 líneas. El soporte del tema envió a este tema. Probé todas las opciones, pero solo una me funciona incluso sin contactar al soporte de hosting.

    Agregué “php_value max_input_vars 5000” (sin comillas) a mi archivo .htaccess antes de la línea “#fin de wordpress” y eso resolvió el problema.

  5. Hola equipo,

    Estoy usando Hostgator con Multidomain SSL.

    Revisé la configuración y no sé dónde ni cómo hacerlo.

    Agregué el archivo php.ini con el código max_input_vars=9000; y todavía no puedo agregar elementos al menú principal.

    ¿Alguien me ayuda? Muy apreciado.

    Saludos,
    -Rams

  6. Estoy teniendo este problema ahora mismo, contacté a los hosts quienes dicen que no pueden/no aumentarán a 5000 variables porque es un servidor compartido, ¿hay alguna otra solución? ¿es posible tener dos menús de navegación en la misma página, esto resolvería el problema o continuaría simplemente?

    Gracias de antemano, cualquier ayuda sería muy apreciada

  7. Increíble. Tengo el mismo problema durante mucho tiempo sin saber por qué. Pregunté a mucha gente. Hoy arreglé mi problema. hostGator no necesita llamar al representante del centro de llamadas. Podemos hacerlo nosotros mismos. Realmente útil, no tengo palabras para agradecer.

  8. Mahalo nui loa (¡muchas gracias)!

    Esto funcionó para el sitio de un cliente que está en Bluehost, hosting compartido:
    1. Cpanel > Administrador de Archivos
    2. public_html > wp-admin
    3. Haz clic en “Nuevo Archivo” > nómbralo php.ini (si no tienes este archivo ya)
    4. Haz clic en php.ini > haz clic en “editar” > haz clic en “editar” de nuevo
    5. Pega: max_input_vars=5000; > Guardar > LISTO

      • Lo intenté,

        en el archivo .htaccess:
        php_value max_input_vars 5000

        en el archivo php.ini:
        max_input_vars=5000;
        upload_max_filesize = 70M;
        post_max_size = 128M;
        upload_tmp_dir = 70M;
        max_input_vars = 3000;
        memory_limit = 256M;

        en el archivo .user.ini:
        max_input_vars=3000;

        y también probé colocando php.ini & .user.ini en wp-admin y fuera de wp-admin, nada me funciona,

        al agregar en .htaccess la página de administración de WordPress se muestra en blanco (blanca).
        mi hosting es

        cualquier ayuda es apreciada. TIA

  9. Uso GoDaddy y la solución de php.ini no me funcionó en absoluto. Godaddy ni siquiera reconoce esa página o código como válido.

    Al obtener ayuda de la gente de Godaddy, me proporcionaron una solución alternativa.

    Creé una página en mi carpeta html .user.ini (punto-user-punto-ini). En esa página agregué el código:

    max_input_vars = 3000

    Parece que funciona hasta ahora.

    • creé una página en mi carpeta html folder .user.ini (punto-user-punto-ini) -> ¿te refieres a crear un ARCHIVO en tu carpeta PUBLIC_HTML?

      Por favor, confirme ya que tengo el mismo problema aquí en el servidor de GoDaddy también.
      Y no he podido contactarlos en semanas.

      No sé por qué es tan difícil contactar a godaddy.

      • Akut Yo también uso Godaddy.

        Encontré mi archivo php.ini en el administrador de archivos – carpeta public_html NO en el php.admin ni tuve que crear el archivo php.ini.

        Godaddy parece pensar que es un problema de WP, y me dieron vueltas con ese problema en particular.

        Me dirigieron a aumentar mi límite de tamaño de archivo. (No es la misma solución).

    • Esta solución fue la única que funcionó en la plataforma de hosting 1and1:

      Creé una página en mi carpeta html .user.ini (punto-user-punto-ini). En esa página agregué el código:

      max_input_vars = 3000

  10. Tengo un problema al agregar un submenú en el sitio de WordPress, se convierte en un enlace personalizado.
    Por favor, ayúdeme a resolver este error.

  11. solo elimina wordpress; y ve por magento, la mejor solución, me funcionó después de intentar 2 meses, obtuve la mejor solución

  12. En Ubuntu VPS pude arreglarlo descomentando y estableciendo valores más altos como se muestra a continuación.

    max_input_nesting_levels = 500
    max_input_vars = 5000

    Pero de todos modos, gracias, ya que proporcionó un camino hacia la solución

    • ¡te amo hombre!
      ¡tu solución también resolvió otro problema mío! el problema era

      “Después de guardar el menú en la pestaña “Editar Menú”, la opción “Configuración del Menú -> Ubicación del Tema” no conservaría la marca y en la pestaña “Administrar Ubicaciones”, la ubicación del menú se eliminaría.”

    • Hola hombre,
      Estoy ejecutando WordPress multisitio y tengo algunos problemas para agregar más campos personalizados a mi sitio, intenté todo y nada ayudó, y vi tu respuesta sobre aumentar el max_input_nesting_levels = 500. Estoy intentando aumentar ese valor en un VPS con Ubuntu 16.04 en el archivo PHP.Ini pero sin éxito. info.php todavía muestra max_input_nesting_levels = 64. Agradecería si pudieras decirme cómo aumentaste este valor, ¿fue a través del archivo PHP.ini o a través del archivo htaccess?

      Saludos,

  13. Amigos de HostGator – Mismo problema y esto lo solucionó:

    1. Cpanel > Administrador de Archivos

    2. public_html > wp-admin

    3. Haz clic en “Nuevo Archivo” > nómbralo php.ini (si no tienes este archivo ya)

    4. Haz clic en php.ini > haz clic en “editar” > haz clic en “editar” de nuevo

    5. Pega: max_input_vars=5000; > Guarda > LISTO

  14. Yo también tengo este problema. Un técnico de Studio Press me dirigió a este sitio. Tengo una cuenta de hosting compartido con Host Gator. Han aumentado mi max_input_vars a 7000, porque no avanzaba con 3000 o 5000. Creé un php.ini con tus recomendaciones en mi wp-admin. Todavía sin suerte. ¿Necesito eliminar el php.ini en mi carpeta public, ya que creé uno en wp-admin? Estoy intentando tanto resolver esto. Muchas gracias.

  15. Debido a que estoy en un hosting compartido, poner el archivo php.ini en la carpeta raíz no me funcionó. Pero ponerlo en la carpeta wp-admin sí funcionó. Creo que esto se debe a que el archivo nav-menus.php está en la carpeta wp-admin.

  16. Hola a todos, ... sí, yo también me encontré con este problema/situación con el menú ... ¡y vaya susto! Alrededor de la página 50 a la 100, el último elemento que puse en el menú se estaba eliminando, ¡o se caía de la navegación principal del menú! ¿Qué?!!!

    Los novatos, y otros geeks por igual, saben esto sobre eso (el problema) ... y solo hablo por mi propio caso, aunque lo hago con la esperanza de que alguien que experimente la misma pesadilla pueda beneficiarse ... así que aquí vamos.

    Con 'hosting compartido' usando HostGator ... no habrá 'suhosin', que aparentemente es un parche/programa, etc., para errores de scripting con php diseñado para proteger 'servidores' según un representante de HostGator, ... ahora, sin importar este detalle, continuamos ... lo que era importante en mi caso, ... que finalmente logré que mi persona de HostGator, persona #3, entendiera, a través de toda mi palabrería sobre el problema, fue la parte sobre 'max_input_vars = 3000'.

    Mi representante de HostGator me puso en espera, investigó el problema y determinó que 'max_input_vars = 3000' tenía que ponerse en el archivo php.ini, ... al que solo HostGator tiene acceso, ... no al archivo php.ini que está en mi/nuestro directorio 'home' o 'raíz', al que yo/nosotros tenemos acceso, a través de nuestras cuentas con HostGator u otros proveedores de hosting, usando el CPanel, como a menudo llamamos a este punto de acceso.

    Este archivo php.ini no es accesible de ninguna manera a través de internet por mí, o por nosotros, como titulares de cuentas con acceso a cuentas de hosting, ¿capiche? Bien, y bueno saberlo.

    Ahora, lo que hice fue tomar lo que Alex, justo debajo de esta publicación, dijo que hiciera, y puse estas líneas de texto/código en un archivo php.ini que luego coloqué en mi área de archivos public_html, dentro de mi carpeta ‘wp-admin’, para el dominio con el que estaba trabajando. Durante un tiempo, pensé que esta ‘solución’ estaba funcionando, luego hoy, estaba agregando más páginas y ‘¡qué alegría!’ los elementos de navegación del menú principal se estaban cayendo de la línea, ¡caramba!

    Volví al problema, revisé de nuevo toda esta publicación y el hilo del ‘Coretrac Ticket’, que está un poco por encima de mi nivel, pero aun así, fui diligente y determinado. Y luego de vuelta a la brecha con la gente de HostGator para la pow-wow #2, completé esa llamada y tuve que volver, con la persona #3 que fue el encanto.

    Por último, lo que aprendí es que, a lo que se refiere el ‘max_input_vars = 3000’ es a cuántas páginas puede tener tu instalación/dominio/WordPress, el ‘3000’ significa páginas. Mi representante de HostGator puso 5000 páginas.

    Así que, agregué dos nuevas páginas de prueba en el acto con él todavía al teléfono y ¡reportamos ‘alegría’! ¡Yay! ¡Yo también debería poder agregar páginas a mi gusto! ¡Que tú también experimentes la ALEGRÍA de WordPress!

    Salud,
    Gadget

    • El problema se resolvió con un archivo php.ini en la carpeta wp-admin con la siguiente línea en una cuenta de hosting compartido de HostGator.

      max_input_vars = 9000;

      Gracias

  17. Crea un archivo php.ini pero no en la raíz (public_html)
    en la carpeta “wp-admin” y luego agrega:

    max_input_vars = 3000;

    Yo también tengo:
    upload_max_filesize = 70M;
    post_max_size = 128M;
    upload_tmp_dir = 70M;
    max_input_vars = 3000;
    memory_limit = 256M;

  18. ¡Hola! ¡Gracias por este gran consejo! Tuve el mismo problema con UberMenu. Ahora agregué php_value max_input_vars 5000 a mi archivo .htaccess y resolvió el problema.

  19. He intentado algunas cosas sin éxito. Le pedí a mi host que hiciera estos cambios de configuración de PHP. También activé el plugin Memory Bump y luego lo eliminé como sugirieron otros.

    Mi tema (Twenty Ten) solo admite un menú. Puedo crear otro menú y hacer cambios allí sin problema. Tengo un sitio en vivo, así que estoy un poco limitado en cuanto a la cantidad de experimentación que puedo hacer.

    ¿Alguna otra idea? Lo intentaré todo en este momento.

  20. Tengo el mismo problema y el plugin Memory Bump no lo solucionó.

    Me puse en contacto con mi proveedor de hosting y me dijeron que todavía no tengo un archivo php.ini y que tengo que crearlo, o que WP tiene que crearlo por mí...

    ¿Cómo hago esto?

  21. Parece que una solución simple sería que la funcionalidad ajax de WP evaluara el número de elementos en la lista y la dividiera en múltiples solicitudes secuenciales en lugar de una sola solicitud grande.

    Me parece raro que el equipo de wordpress no pensara en esto de antemano, pero supongo que la plataforma es tan robusta que simplemente tienen demasiado en su plato. Puede que termine haciéndolo yo mismo, pero por supuesto tendré que hacerlo de una manera que no se sobrescriba con futuras actualizaciones. ¡Qué fastidio!

  22. Estoy en la misma situación que Mat Lipe. Tenía problemas porque mi servidor no tiene suhosin instalado. Pude solucionar el problema agregando la directiva que Mat publicó a mi archivo php.ini. Gracias.

  23. Acabo de tener el mismo problema y después de días de correos electrónicos de ida y vuelta con el soporte de hosting web, ¡finalmente se resolvió!

    Hicieron los siguientes cambios:

    Agregaron max_input_vars = 5000 en php.ini

    Eso es todo, y ahora funciona a la perfección y estoy agregando páginas a mi gusto.

  24. Hola,

    Mi servidor no está ejecutando suhosin, así que pude solucionar este problema agregando esto a mi archivo php.ini y reiniciando mi servidor.

    max_input_vars = 5000

    Espero que esto ayude a alguien más con el mismo problema

Deja una respuesta

Gracias por elegir dejar un comentario. Ten en cuenta que todos los comentarios se moderan de acuerdo con nuestra política de comentarios, y tu dirección de correo electrónico NO se publicará. Por favor, NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.