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.
Elimina el enlace, no la página
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
- Abre el sitio y mira el menú.
- Comprueba que ningún subelemento ha saltado al nivel superior.
- Comprueba en móvil.
- 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 |
Relacionado
wp_get_menu_items— leer antes de eliminarwp_update_menu_item— reasignar el padre suele ser mejor- Editar un menú de navegación