Skip to content

Todo para WordPress, el desarrollo web — y mucho más

🔗 Cómo añadir un enlace de inicio al menú de WordPress

🔗 Cómo añadir un enlace de inicio al menú de WordPress

Un menú de navegación sin un enlace a la página de inicio es como una puerta de entrada sin manija. Un visitante llega a una página interna desde un buscador, lee el contenido... y no tiene idea de dónde hacer clic para ir al inicio. El logo en la cabecera no siempre ayuda; algunos usuarios buscan instintivamente un ítem «Inicio» directamente en el menú.

Antes de la versión 3.0, WordPress no tenía esa opción en el editor de menús estándar, así que había que editar el código o añadir un enlace personalizado manualmente. Ahora todo es más sencillo: un par de clics y el enlace de inicio queda en su lugar. Y si usted es desarrollador o está personalizando un tema, existe el filtro wp_nav_menu_items que resuelve la tarea con una sola función.

A continuación encontrará ambos métodos: uno visual para usuarios habituales y uno programático para quienes trabajan con código. Además cubriremos cuándo es necesario actualizar el enlace y qué hacer si desaparece de repente.

💡 Resumen rápido:

  • Añada un enlace de inicio al menú de WordPress desde el panel de administración en menos de un minuto y sin plugins.
  • Añada el enlace programáticamente usando el filtro wp_nav_menu_items en el archivo functions.php del tema.
  • Verifique y actualice la URL después de cambiar de dominio o migrar a HTTPS.

Método 1: desde el panel de administración de WordPress

Este método funciona con WordPress 3.0 y versiones posteriores, es decir, en cualquier sitio moderno. No se requieren plugins ni ediciones de código.

Ingrese al panel de administración y vaya a Apariencia → Menús. A la izquierda verá bloques: «Páginas», «Entradas», «Enlaces personalizados» y otros según los plugins y tipos de contenido instalados.

En el bloque Páginas, haga clic en la pestaña Todas (o «Ver todas» en versiones anteriores). La primera entrada es una página llamada «Inicio». Marque su casilla y haga clic en Añadir al menú.

Bloque de páginas en el editor de menús de WordPress con el elemento Inicio

Una vez añadido, el ítem aparecerá en la estructura del menú a la derecha. Arrástrelo a la posición deseada; normalmente se coloca al principio o al final. Guarde el menú haciendo clic en Guardar menú y el enlace de inicio se publicará en su sitio.

Por defecto, WordPress usa la URL directa de la página de inicio para este ítem (por ejemplo, https://vash-sait.ru/). Es importante recordarlo: si más adelante traslada el sitio a otro dominio o cambia de HTTP a HTTPS, el enlace conservará la dirección antigua. Tendrá que abrir el editor de menús y corregir la URL manualmente, o eliminar el ítem y volver a añadirlo (WordPress insertará la dirección actual automáticamente).

Método 2: adición programática mediante un filtro

Si está desarrollando un tema personalizado o quiere que el enlace de inicio se añada automáticamente al activar el tema, use el filtro wp_nav_menu_items. Este intercepta el HTML de los ítems del menú antes de la salida y le permite insertar su propio elemento.

Coloque el código en el archivo functions.php del tema activo (o de un tema hijo para no perder los cambios al actualizar). Una alternativa es el plugin Code Snippets: usted crea un fragmento, pega el código y lo activa; los cambios quedan entonces independientes del tema.

Página del plugin Code Snippets en WordPress
1/**
2 * Adds a "Home" link to the main WordPress menu.
3 *
4 * @param string $items HTML markup of menu items.
5 * @param object $args wp_nav_menu() arguments.
6 * @return string
7 */
8function sdstudio_add_menu_home_link( $items, $args ) {
9 // Target menu location — replace 'main' with your own value
10 if ( 'main' !== $args->theme_location ) {
11 return $items;
12 }
13
14 $home_link = sprintf(
15 '<li class="menu-item"><a href="%s">%s</a></li>',
16 esc_url( home_url( '/' ) ),
17 esc_html__( 'Home', 'textdomain' )
18 );
19
20 // The link is added first — put $items . $home_link if you need it last
21 $items = $home_link . $items;
22
23 return $items;
24}
25add_filter( 'wp_nav_menu_items', 'sdstudio_add_menu_home_link', 10, 2 );

El parámetro clave es 'main' en la condición if. Este es el slug del área de menú (ubicación del tema) registrada por la función register_nav_menu() en el tema. Puede encontrar su slug en el archivo functions.php del tema: busque la llamada a register_nav_menu() o register_nav_menus() y revise el primer argumento. Lo más frecuente es que sea primary o main.

La función es segura: esc_url() escapa la URL y esc_html__() escapa el texto del enlace a la vez que soporta traducción. Si usa un tema hijo, reemplace 'textdomain' por el dominio de texto de su tema.

Después de insertar el código, actualice el sitio y el enlace de inicio aparecerá en el menú automáticamente. No necesita eliminarlo manualmente: simplemente comente o borre la llamada a add_filter() y todo volverá al estado original.

Situaciones en las que el enlace necesita actualización

Un enlace de inicio añadido desde el panel de administración almacena una URL fija, la que estaba en los ajustes del sitio en el momento de añadirlo. Tres escenarios comunes en los que se rompe:

  • Cambio de HTTP a HTTPS. El ítem del menú sigue apuntando a http://..., los navegadores pueden mostrar una advertencia de contenido mixto o la redirección puede fallar. Solución: abra el editor de menús, elimine el ítem «Inicio» antiguo y añádalo de nuevo; WordPress insertará la URL actual con https://.

  • Cambio de dominio. Al trasladar un sitio de un entorno de desarrollo a producción (staging.site.rusite.ru) o migrar a un dominio completamente nuevo. El ítem del menú conserva la URL antigua. Solución: igual que la anterior (eliminar y volver a añadir).

  • Traslado de un subdirectorio a la raíz. Si el sitio se muda de site.ru/blog/ a site.ru/, todos los enlaces fijos se rompen. Después de la migración, revise TODOS los ítems del menú, no solo el enlace de inicio.

El método programático (mediante wp_nav_menu_items) no tiene estos problemas: home_url('/') siempre devuelve la dirección actual de la página de inicio desde los ajustes de WordPress.

Por cierto, si trabaja con menús con frecuencia, revise los ajustes de navegación en Apariencia → Personalizar, donde puede gestionar menús en tiempo real con una vista previa en vivo. Para ediciones avanzadas (añadir iconos a los ítems, mega menús) existen herramientas específicas, pero ese es tema para otro artículo.

Video: cómo añadir un botón de inicio en 2 minutos

Si prefiere ver a leer, aquí tiene un breve video en inglés con una demostración paso a paso en pantalla:

⁉️🤔 Preguntas frecuentes

¿Puedo añadir un enlace de inicio sin plugins ni código?

Sí, a través del editor de menús estándar de WordPress: Apariencia → Menús → bloque Páginas → marque «Inicio» → Añadir al menú. Esta es una funcionalidad básica disponible desde la versión 3.0.

¿Por qué desapareció el enlace de inicio del menú después de cambiar de tema?

Los menús en WordPress están vinculados a áreas de menú (ubicaciones del tema) registradas por el tema. Cuando cambia de tema, las áreas antiguas desaparecen y las nuevas pueden tener nombres diferentes. Su menú no se ha ido a ninguna parte; simplemente quedó «sin asignar». Vaya a Apariencia → Menús → pestaña Gestionar ubicaciones y asigne el menú existente a un área del nuevo tema. Todos los ítems, incluido el enlace de inicio, volverán.

El menú ya tiene un ítem «Inicio», pero lleva a una página concreta en lugar de a la raíz del sitio. ¿Cómo lo soluciono?

Lo más probable es que se haya añadido al menú una página específica titulada «Inicio» en lugar del tipo especial «Portada». Elimine ese ítem del menú, luego en el bloque Páginas busque la entrada etiquetada como «Portada» (WordPress la marca de forma distintiva) y añádala. Si no existe esa etiqueta, use «Enlaces personalizados»: en el campo URL ingrese / y en el campo «Texto del enlace» escriba «Inicio».

¿Cómo añado el enlace de inicio al final del menú en lugar de al principio?

En el método programático, invierta el orden de concatenación: en lugar de $home_link . $items escriba $items . $home_link. En el editor visual, simplemente arrastre el ítem «Inicio» al final de la lista y guarde el menú.

¿Es necesario usar esc_url() y home_url() en el código?

Sí, es una buena práctica de WordPress. home_url('/') inserta dinámicamente la dirección actual del sitio desde los ajustes, por lo que no necesitará editar el código al cambiar de dominio. esc_url() escapa caracteres especiales y protege contra ataques XSS. Omitir el escapado en código de producción es arriesgado.

¿Funciona el método con código en una instalación multisitio de WordPress?

Sí, home_url( '/' ) en multisitio devuelve la URL del sitio específico dentro de la red (la que está especificada en los ajustes de ese subsitio). Cada sitio de la red tendrá su propio enlace de inicio. Si necesita un comportamiento diferente para distintos sitios, envuelva la llamada a add_filter() en una condición que verifique el ID del blog mediante get_current_blog_id().

¿Qué hacer si el enlace de inicio no aparece?

Primero, verifique lo obvio: ¿guardó realmente el menú después de añadir el ítem? El botón «Guardar menú» está al final de la página; sin hacer clic en él los cambios no se aplican. Si el menú está guardado pero el ítem falta, abra el sitio en modo incógnito (la caché del navegador a veces oculta los cambios recientes).

La segunda causa probable es un plugin de caché (WP Rocket, W3 Total Cache, LiteSpeed Cache). Limpie la caché desde el panel de administración del plugin y vuelva a revisar el sitio.

Si eso no ayuda, cambie temporalmente el tema a uno predeterminado (Twenty Twenty-Five o Twenty Twenty-Six). ¿Apareció el ítem? Entonces el problema está en el tema personalizado; su función wp_nav_menu() puede estar sobreescrita con los filtros eliminados. Revise la llamada a wp_nav_menu() en la plantilla del tema: el argumento 'items_wrap' no debe ser una cadena vacía, y 'fallback_cb' debe ser false solo si desactiva intencionadamente el respaldo.

El código del «Método 2» funciona en cualquier tema siempre que el theme_location sea correcto; sirve como seguro en caso de que el método visual falle por alguna razón.

Un enlace de inicio en el menú es un pequeño detalle que genera confianza. Un visitante que llega a una página interna desde un buscador encuentra el camino de vuelta al inicio en una fracción de segundo y continúa explorando. Sin él, parte de su audiencia simplemente cerrará la pestaña. Dos minutos en el editor de menús o diez líneas de código, y este punto de entrada no se vuelve a perder jamás.