Tutoriales de WordPress de Confianza, cuando más los necesitas.
Guía para Principiantes de WordPress
Copa WPB
25 Millones+
Sitios web que usan nuestros plugins
16+
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

Hace apenas unos días, uno de nuestros usuarios reportó un problema inusual. El problema era que estaba alcanzando el límite de elementos de menú personalizados. Cualquier cosa que guardara después de alcanzar el límite de elementos del menú no se guardaba en absoluto. Nunca habíamos oído hablar de este problema, así que decidimos probarlo en nuestra instalación local. Creamos más de 200 elementos de menú y lo guardamos. Funcionó perfectamente. Movimos 100 elementos a un menú desplegable y eso se guardó perfectamente. En ese momento, supimos que esto tenía algo que ver con el servidor. Tras una investigación adicional, parecía que muchos otros estaban teniendo el mismo problema. Profundizando un poco más, encontramos un ticket de trac (#14134) que destacaba este problema. Después de leer el ticket de trac, que es muy, muy largo, parece que el problema aún no se ha solucionado, pero existe una solución alternativa para quienes tienen este problema. En este artículo, le mostraremos cómo solucionar el límite de elementos de menú personalizados en WordPress.

Para solucionar el problema, necesita editar su archivo PHP.ini. Si está en un servidor dedicado o en un VPS con acceso de root, entonces ya debería saber de qué estamos hablando. Si está en un hosting compartido o no sabe dónde está el archivo PHP.ini, pídale a su proveedor de hosting web que lo haga por usted.

Necesita pedirles que establezcan los siguientes valores en la configuración de PHP.ini:

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

Otro usuario “ronnieg” publicó una solución alternativa que tiene para su sitio de bienes raíces y menú grande (más de 450 páginas y creciendo). Puedes leer su respuesta para seguirlo. (Nota: no hemos probado esta)

Explicación del problema

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 es un proyecto de código abierto (voluntario), y el equipo principal hace todo lo posible para mejorarlo cada día. Esto se solucionará, pero el plazo aún no está definido, ya que dice "Próximos lanzamientos".

Si has probado algo diferente que solucionó este problema para ti, por favor, háznoslo saber en los comentarios. Esto permitirá que otros solucionen su problema hasta que el equipo principal encuentre una solución.

Descargo de responsabilidad: 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 CommentsLeave a Reply

  1. ¡Hola! Estoy usando hosting compartido. Por eso no tengo acceso root para editar el archivo phpi.ni. ¿Cómo puedo resolver el problema?

  2. 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.

  3. 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!

  4. 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.

  5. 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.

  6. 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

  7. 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

  8. 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.

  9. 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

  10. 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

    • Lou, a primera vista (y primera prueba) parece que funcionó perfectamente – ¡gracias!

      Actualizaré si encuentro más problemas.

  11. 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.

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

  13. 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,

  14. 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

  15. 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.

  16. 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.

  17. 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

  18. 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;

  19. ¡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.

  20. 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.

  21. La sugerencia de Matt también me funcionó, ya que no ejecuto suhosin.

    agregado:
    max_input_vars = 5000
    a mi archivo php.ini

  22. 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?

  23. 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!

  24. 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.

  25. 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.

  26. 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 son moderados de acuerdo con nuestra política de comentarios, y tu dirección de correo electrónico NO será publicada. Por favor, NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.