wp_get_menu_items: listar elementos del menú
Enumera todos los elementos de un menú, con su posición en la jerarquía.
Argumentos
| Argumento | Obligatorio | Significado |
|---|---|---|
menu_id |
Sí | El menú, de wp_get_menus |
Permisos
mcp:read y wp:content:read, más edit_theme_options.
Qué devuelve
Una lista items. Cada elemento incluye:
| Campo | Significado |
|---|---|
id |
El ID del elemento del menú |
title |
La etiqueta que se muestra a los visitantes |
url |
A dónde apunta |
parent |
El ID del elemento superior, o 0 para el nivel superior |
object |
Qué tipo de cosa enlaza |
object_id |
El ID de esa cosa |
order |
Su posición |
Esta respuesta tiene jerarquía, y los listados de taxonomías no
Conviene señalarlo porque es la excepción. Los listados de términos no exponen ningún elemento superior; los elementos de menú sí.
parent y order describen juntos toda la estructura, lo que significa que un asistente que lea este listado conoce de verdad la forma del menú y, por tanto, puede hacer una edición correcta en lugar de una suposición.
Lee siempre esto antes de cualquier escritura en el menú.
object y object_id distinguen dos tipos de elemento
Un elemento de menú apunta a algo de WordPress o a una URL arbitraria:
- Un elemento enlazado tiene
objectestablecido enpage,post,category, etc., conobject_idindicando el registro concreto. WordPress mantiene su URL correcta si cambia el enlace permanente del objetivo. - Un elemento personalizado tiene
objectdecustomy unaurlliteral. Nada lo mantiene correcto.
Esta distinción importa al auditar: los elementos personalizados son los que se corrompen en silencio cuando cambia el slug de una página, y son lo que wp_create_menu_item produce por defecto.
Leer la estructura antes de una edición
Muéstrame todos los elementos del menú 3 con su ID, título, URL, elemento superior y orden.
A partir de ahí puedes responder a las preguntas que una edición segura necesita:
- ¿Qué elemento es el que hay que cambiar?
- ¿Tiene hijos que quedarían huérfanos si se elimina?
- ¿Cuál es el orden actual, para poder expresar una reordenación como una lista completa?
- ¿Hay URL que apunten a borradores o a páginas que faltan?
Auditar enlaces rotos
El listado te ofrece todas las URL en una sola respuesta, lo que lo convierte en una auditoría rápida:
Enumera los elementos del menú 3 y dime cuáles apuntan a URL en lugar de a objetos de WordPress.
Después compruébalos manualmente. Los elementos enlazados suelen sobrevivir a los cambios de contenido; los personalizados no.
Qué no hace
- No valida que los objetivos existan. Un elemento de menú que apunte a una página eliminada se enumera como cualquier otro.
- No indica a qué ubicación de menú está asignado el menú.
- No ofrece información de idioma en un sitio multilingüe: el menú de cada idioma es un menú independiente.
Cómo usarlo bien
Combínalo con el listado de menús al inicio de cualquier sesión de navegación:
Enumera los menús y luego muéstrame los elementos del menú principal. No cambies nada todavía.
Después limita la escritura a ID de elementos concretos. Consulta Editar un menú de navegación.
Problemas habituales
| Síntoma | Causa |
|---|---|
pom_ai_mcp_forbidden |
No hay edit_theme_options |
| Una lista vacía | El menú no tiene elementos, o el ID es incorrecto |
| Elementos que no ves en el sitio | El menú no está asignado a una ubicación del tema |
Valores parent que no esperabas |
El menú es más profundo de lo que parece al mostrarse |