Límite de menú: no se pueden agregar nuevos elementos

13 dic 2012, 01:52:38
Vistas: 17.7K
Votos: 5

Estoy ejecutando WP 3.4.2 en un VPS. Cuando migré a este servidor VPS e importé todos mis datos de WP desde el antiguo, los menús funcionaban correctamente. Sin embargo, por alguna razón, no puedo editar/agregar elementos a los menús, y algunos ítems han sido eliminados. No importa cuántas veces intente volver a agregar esos elementos, no aparecen. WP no reporta ningún error. Cuando los agrego nuevamente y hago clic en el botón "Guardar menú", después de una larga pausa (30-45 seg) WP simplemente dice "El menú Principal ha sido actualizado". Pero los nuevos elementos faltan, tanto en los menús del sitio como en la configuración de menús de WP.

Originalmente, cuando migré a este VPS, había 9 elementos principales en el menú y unos 90 subelementos - aproximadamente 100 ítems en total. Todo se mostraba correctamente.

Ahora estoy limitado a 88 elementos de menú. Solo puedo agregar un elemento eliminando otro.

No estoy seguro de cuándo comenzó este problema, porque no editamos el menú con frecuencia. Se notó por primera vez ayer que algunos elementos del menú habían desaparecido, lo que podría coincidir con que alguien agregó o editó un elemento del menú. Pero hemos estado ejecutando en este nuevo VPS durante aproximadamente un mes.

Encontré en otra discusión del foro una referencia a suhosin que puede causar problemas de límite de menú en WP 3.x, pero eso no es parte de nuestra instalación de PHP.

He probado Safari y Firefox (OS X). Mismos resultados con ambos.

2
Comentarios

¿Estás seguro de que "por alguna razón" no es un nuevo plugin o alguna actualización? ¿Has solucionado problemas completamente? ¿Qué tal la información de depuración?

brasofilo brasofilo
13 dic 2012 04:34:41

Resultó que era max_input_vars lo que necesitaba incrementarse en php.ini. Habíamos actualizado plugins, pero no instalado nuevos, y ninguno de los plugins está directamente relacionado con menús. Sin embargo, esos son enlaces útiles.

Michael Michael
13 dic 2012 17:53:22
Todas las respuestas a la pregunta 4
1

Tuve un problema similar con el servidor de un cliente, y la solución en su caso fue incrementar la configuración de max_input_vars de PHP en el archivo php.ini.

El número de elementos del menú multiplicado por la cantidad de atributos de cada elemento estaba agotando las variables de entrada permitidas, por lo que el servidor estaba truncando silenciosamente la solicitud, lo que resultaba en que los elementos del menú simplemente desaparecían al final.

13 dic 2012 02:51:19
Comentarios

Este fue el ticket. Agregar max_input_vars = 2000 a mi php.ini y reiniciar el servidor me permitió agregar los elementos truncados del menú. (Curiosamente, ocasionalmente obtengo errores 404 al actualizar el menú. Es decir, la actualización vuelve a la misma página de WP /wp-admin/nav-menus.php, pero muestra un error 404 en lugar de la página de edición del menú. Sin embargo, a pesar de eso, el menú se actualizó correctamente).

Michael Michael
13 dic 2012 16:44:58
2

Este mismo problema fue el tema de un artículo reciente por WPBeginner


Necesitas editar tu archivo php.ini. Como estás alojado en un VPS, deberías tener acceso a este. De lo contrario, pídele amablemente a tu proveedor de hosting que lo haga por ti.

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

También hay un ticket de trac (#14134) que resalta este problema.

13 dic 2012 06:20:59
Comentarios

Como se explicó en la pregunta original, mi sitio no utiliza suhosin. Sin embargo, hay una configuración relacionada de PHP, max_input_vars, que tuvo que ajustarse. Ver el comentario de @Milo arriba.

Michael Michael
13 dic 2012 17:55:10

Lo siento, debí haber pasado por alto esa parte. Dejaré mi respuesta aquí en caso de que algún visitante sí utilice suhostin

shea shea
13 dic 2012 22:19:56
2

Me he encontrado con este problema en varias ocasiones. Prueba esta solución rápida:

  1. Abre tu editor de texto favorito (Notepad, Dreamweaver, etc.)
  2. Crea un archivo llamado "php.ini"
  3. Pega el siguiente código: php_value max_input_vars 7000
  4. Guarda el archivo
  5. Sube el archivo a la carpeta raíz de tu sitio mediante FTP (Filezilla, Rush FTP, etc.)

¡Eso es todo! :)

22 ago 2013 01:17:44
Comentarios

¿Podrías definir cuál es la "carpeta raíz"? ¿Está en mi carpeta \nombredelsitio\?

p.a. p.a.
18 feb 2014 15:58:06

@p.a.deberías colocar el php.ini en la carpeta wp-admin

Andrew Lazarus Andrew Lazarus
29 abr 2015 17:29:14
0

Algunas soluciones:

1) Simplemente cambia los menús no desde el panel de ADMIN, sino desde el "personalizador" (porque utiliza una llamada AJAX)

2) Intenta añadir php_value max_input_vars 7000 en el archivo .htaccess (o php.ini) [cuando estés en hosting compartido]

3) Intenta aumentar la memoria, añade esto en wp-config.php : define("WP_MEMORY_LIMIT", "128M");

19 oct 2016 00:04:27