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 object establecido en page, post, category, etc., con object_id indicando el registro concreto. WordPress mantiene su URL correcta si cambia el enlace permanente del objetivo.
  • Un elemento personalizado tiene object de custom y una url literal. 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?

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