wp_delete_menu_item: eliminar un elemento del menú

Elimina un elemento de un menú de navegación. De forma permanente: no va a la papelera.

Argumentos

Argumento Obligatorio Significado
item_id Sí El elemento del menú que se va a eliminar
dry_run No Informar sin eliminar

Ten en cuenta que solo recibe el ID del elemento. No hay ningún menu_id, así que nada comprueba que el elemento pertenezca al menú que tenías en mente.

Permisos

Allow content writes abierto, y edit_theme_options.

Eliminar un elemento del menú quita la entrada de navegación. La página, entrada o categoría a la que apuntaba no se toca y permanece en el sitio.

Eso hace que esta operación sea mucho más segura de lo que parece: reversible en el sentido de que puedes volver a crear el elemento, aunque habría que restablecer la posición y la jerarquía.

Comprueba primero los elementos secundarios

El peligro real. Eliminar un elemento que tiene subelementos debajo deja a esos hijos sin un padre.

Según el tema, desaparecen del menú o se promocionan al nivel superior, y ninguna de las dos cosas suele ser lo que se pretendía. Un subelemento que salta a la barra de navegación principal es muy visible.

El listado de elementos informa de parent, así que esto se puede comprobar antes de actuar:

Muéstrame los elementos del menú 3 con sus IDs y sus padres. ¿Tiene el elemento 88 hijos?

Si los tiene, decide qué debe pasar con ellos: vuelve a asignarles un padre primero con wp_update_menu_item, o elimínalos también.

La prueba en seco confirma el ID y nada más

dry_run devuelve el ID del elemento que eliminaría. No devuelve el título del elemento, su URL ni sus hijos.

Como la herramienta no recibe ningún menu_id, el ID es lo único que identifica lo que estás eliminando, así que lee antes el listado y confirma el título.

Muéstrame el título y la URL del elemento 88. Luego elimínalo.

Plantéate si la eliminación es lo que quieres

Alternativas que suelen ser mejores:

  • Reasignarle un padre en una posición menos destacada, si el objetivo es quitar protagonismo en lugar de eliminar.
  • Dejarlo y despublicar el destino, si el objetivo es quitar una página del sitio, aunque eso deja una entrada del menú apuntando a algo invisible, así que normalmente querrás hacer ambas cosas.

Eliminar un elemento del menú dejando publicada su página hace que la página sea inalcanzable a través de la navegación pero siga activa e indexada, lo cual es un estado legítimo sobre el que merece la pena ser deliberado.

Después de eliminar

  1. Abre el sitio y mira el menú.
  2. Comprueba que ningún subelemento ha saltado al nivel superior.
  3. Comprueba en móvil.
  4. Purga la caché.

Sitios multilingües

El menú de cada idioma es independiente. Eliminar un elemento de uno deja intactos los demás, lo que produce una navegación que difiere según el idioma.

Problemas comunes

Síntoma Causa
La escritura se rechaza Puerta de escritura de contenido cerrada
pom_ai_mcp_forbidden No hay edit_theme_options
Aparecieron subelementos en la barra principal Se eliminó su padre
Desapareció el elemento equivocado No se comprueba ningún menu_id; el ID era incorrecto
El menú parece no haber cambiado Caché no purgada
La página sigue siendo accesible Correcto; solo se eliminó el enlace