wp_create_menu_item: crea un elemento de menú

Añade un elemento a un menú de navegación.

Argumentos

Argumento Obligatorio Significado
menu_id Sí El menú al que añadirlo
title Sí La etiqueta que ven los visitantes
url Sí Hacia dónde apunta
parent No ID del elemento padre; omítelo para el nivel superior
object / object_id No Enlaza a un objeto de WordPress en lugar de a una URL
dry_run No Informa sin crear

Permisos

Allow content writes abierto, y edit_theme_options.

Pasar solo title y url produce un elemento de menú personalizado: una URL literal que WordPress no mantiene.

Si la página a la que apunta cambia más adelante su slug, el elemento de menú se rompe silenciosamente. Nada te avisa, y seguirá apuntando a una URL que devuelve un 404.

Para crear en su lugar un enlace mantenido, pasa object y object_id juntos — por ejemplo object: page con el ID de la página. WordPress mantiene entonces la URL correcta a medida que cambia el destino.

Prefiere la forma de objeto siempre que enlaces a algo del sitio. Es la diferencia entre un menú que sobrevive al trabajo sobre el contenido y uno que se deteriora en silencio.

Especifica el padre, o irá al nivel superior

Omitir parent coloca el elemento en la parte superior del menú — en la barra de navegación principal en lugar de dentro de un desplegable.

Esto rara vez es lo que se quiere al añadir, por ejemplo, una página de servicios que pertenece bajo Servicios. Lee primero el menú, encuentra el ID del padre previsto y pásalo.

Muéstrame los elementos del menú 3 con sus IDs y padres. Luego añade «Mantenimiento» bajo «Servicios».

Posición

Los elementos nuevos van al final de su nivel. Para colocar uno en otro sitio, créalo y luego establece el orden explícitamente con wp_reorder_menu_items.

Comprueba que el destino existe y es público

Nada valida la URL ni el objeto. Se puede crear un elemento que apunte a:

  • una página en borrador, que los visitantes no pueden ver;
  • una entrada eliminada;
  • una URL con una errata;
  • un sitio externo.

Los cuatro se crean sin quejarse. Confirma el destino antes de añadirlo y abre el enlace después.

La simulación

Informa de lo que crearía, sin crearlo. Útil para confirmar que el padre y el destino se resuelven como se pretendía.

Después de crear

Los menús aparecen en todas las páginas, así que la verificación es rápida y merece la pena hacerla siempre:

  1. Abre el sitio y mira el menú.
  2. Comprueba que el elemento está en el nivel correcto, en el desplegable correcto.
  3. Haz clic en él.
  4. Compruébalo en móvil, donde el menú suele renderizarse de forma distinta.
  5. Purga la caché.

Sitios multilingües

Cada idioma tiene su propio menú. Añadir un elemento a uno lo añade solo a ese idioma, y un menú completo en español y al que le falta una entrada en inglés es un resultado habitual y confuso.

Planifica la adición equivalente en el menú de cada idioma.

Problemas comunes

Síntoma Causa
La escritura se rechaza Puerta de escritura de contenido cerrada
pom_ai_mcp_forbidden No edit_theme_options
El elemento está en la barra principal, no en un desplegable Se omitió parent
El enlace se rompe más tarde Se creó como una URL personalizada en lugar de como un enlace de objeto
Apunta a algo invisible El destino es un borrador
No aparece en absoluto El menú no está asignado a una ubicación del tema
Solo un idioma lo tiene Los menús son por idioma