En algunos temas o loops personalizados de WordPress, los títulos de las entradas no aparecen enlazados al contenido por defecto. Esto puede afectar tanto la experiencia del usuario como el SEO interno de tu web.
En este artículo te explico cómo solucionar este problema usando funciones nativas de WordPress, sin instalar plugins innecesarios. Además, te explico cómo hacerlo si trabajas con bloques, si estás usando the_title()
a mano, o si estás generando loops con WP_Query
.
- 1. ¿Por qué mis títulos no están enlazados?
- 2. Cómo enlazar manualmente usando the permalink()
- 3. Alternativa: usar the_title() con filtros (title_link personalizado)
- 4. Si trabajas con el editor de bloques (Gutenberg)
- 5. Errores comunes que debes evitar
- 6. ¿Cómo saber si ya están enlazados?
- 7. ¿Qué método debo elegir?
- Conclusión
- ¿Quieres que tu web esté bien construida desde la base?
1. ¿Por qué mis títulos no están enlazados?
En la mayoría de temas modernos, los títulos de las entradas ya vienen con el enlace incorporado. Pero si estás creando una plantilla personalizada, o estás trabajando con un constructor o código a medida, puede que estés usando directamente:
<?php the_title(); ?>
Esto mostrará el título, sí, pero sin enlace. Es decir, no enlaza a la entrada individual. Para solucionarlo, hay varias formas, y la mejor depende del contexto en el que estés trabajando.
2. Cómo enlazar manualmente usando the permalink()
La forma más directa y universal es envolver the_title()
con una etiqueta <a>
que utilice the_permalink()
:
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
Este método es limpio, seguro y válido para cualquier loop de WordPress, sea el loop principal (have_posts()
), una consulta secundaria (WP_Query
), o incluso funciones personalizadas.
¿Qué hace cada función?
the_title()
muestra el título de la entrada actual.the_permalink()
obtiene la URL del enlace permanente de esa entrada.
Este método funciona en prácticamente cualquier archivo PHP del theme: index.php
, archive.php
, single.php
, etc.
3. Alternativa: usar the_title() con filtros (title_link personalizado)
Si quieres una solución más global que afecte a todos los títulos de las entradas sin tener que modificar cada plantilla, puedes usar un filtro de WordPress para modificar el comportamiento de the_title()
.
add_filter('the_title', 'cbz_enlazar_titulos_entradas', 10, 2);
function cbz_enlazar_titulos_entradas($title, $id) {
if (is_admin()) return $title;
if (get_post_type($id) === 'post' && !is_singular()) {
$url = get_permalink($id);
$title = '<a href="' . esc_url($url) . '">' . $title . '</a>';
}
return $title;
}
¿Qué hace este snippet?
- Afecta solo al frontend, no al panel de administración.
- Añade automáticamente el enlace a los títulos de los posts (podrías modificarlo para que afecte a custom post types).
- Solo se aplica en listados, no en páginas individuales (
!is_singular()
), para evitar enlaces innecesarios en títulos ya visibles.
Puedes colocarlo en tu plugin personalizado o en un mu-plugin si sigues buenas prácticas (si tienes dudas, en este artículo te explico con detalle cómo y dónde colocar códigos personalizados en WordPress).
4. Si trabajas con el editor de bloques (Gutenberg)
Si estás maquetando un archivo de entradas o una plantilla con el editor de bloques, asegúrate de usar el bloque adecuado:
- El bloque “Título del post” tiene una opción para convertir el título en un enlace. Solo tienes que activarla desde la barra lateral (icono de engranaje → “Hacer del título un enlace”).

Es muy común que esta opción esté desactivada por defecto si estás trabajando con plantillas personalizadas dentro del editor del sitio.
5. Errores comunes que debes evitar
- Usar
get_the_title()
en lugar dethe_title()
sin imprimir el resultado. - Olvidar escapar el contenido: recuerda usar
esc_url()
para los enlaces. - Envolver títulos con enlaces dentro de enlaces existentes (lo que genera errores de HTML anidados).
6. ¿Cómo saber si ya están enlazados?
Una forma rápida de comprobar si tus títulos están correctamente enlazados es inspeccionar el código HTML del listado de entradas. Deberías ver algo así:
<h2><a href="https://tuweb.com/mi-post/">Título del post</a></h2>
Si no aparece un <a href=...>
dentro del <h2>
, tu theme o plantilla no lo está gestionando.
7. ¿Qué método debo elegir?
Escenario | Recomendación |
---|---|
Loop en plantilla PHP | Envolver the_title() con the_permalink() |
Quieres aplicar el cambio globalmente | Usa el filtro con add_filter('the_title', ...) |
Maquetas con Gutenberg | Activa la opción de “Hacer del título un enlace” en el bloque de título |
Maquetador visual o plugin de bloques | Verifica si el bloque tiene opción de “Hacer del título un enlace” o similar, o cámbialo por uno más flexible (como los de Spectra o Kadence) |
Conclusión
Asegurarse de que los títulos de tus entradas estén correctamente enlazados es clave para la navegación, la arquitectura interna y el SEO. No te fíes de que el theme lo hará por ti: toma la iniciativa y asegúrate de ello a través de alguno de los métodos que te he mostrado.
Y si quieres más snippets útiles como este, pásate por mi biblioteca de trucos para WordPress. Estoy constantemente publicando soluciones reales y testadas para facilitarte el trabajo.
¿Quieres que tu web esté bien construida desde la base?
Puedo ayudarte a diseñar y construir una web rápida, estable y bien hecha, sin dependencias ni parches.
Escríbeme. Estoy a tu disposición.
📸 Imagen: Shahadat Rahman en Unsplash