
🔧 Cómo personalizar los encabezados de WordPress: 4 técnicas usando functions.php
Los encabezados en WordPress son mucho más que texto en la parte superior de una página. Trabajan para usted en cuatro direcciones a la vez: SEO (etiqueta title en los resultados de búsqueda), navegación (pestaña del navegador), diseño (jerarquía visual en la página) y control editorial (lo que escriben los autores). Pero los ajustes predeterminados del panel de administración solo cubren lo básico; para un ajuste fino se requiere código.
El problema se agrava cuando varios autores trabajan en un sitio. Uno escribe encabezados de 120 caracteres y rompe la maquetación. Otro usa palabras que su socio ha prohibido por contrato. Un tercero olvida que el título de la página en los resultados de búsqueda y en el sitio son dos campos distintos. Usted no puede supervisar a todos manualmente.
A continuación, presentamos cuatro técnicas específicas para configurar los encabezados de WordPress mediante functions.php. Cada una resuelve su propia tarea: desde el truncado automático de longitud hasta el bloqueo programático de palabras prohibidas. El código utiliza filtros documentados de WordPress y ha sido probado en WP 6.x. Al final, encontrará una sección de preguntas frecuentes sobre el tema.
💡 Resumen rápido:
- Limitar automáticamente la longitud del encabezado mediante el filtro
the_titlepara que los autores no puedan romper la maquetación - Cambiar la alineación del encabezado de la entrada a través de
single.phpsin plugins ni ediciones de CSS - Bloquear la publicación de entradas con palabras prohibidas mediante el hook
transition_post_status - Cambiar el separador de la etiqueta title y añadir títulos personalizados mediante campos meta
Cómo limitar la longitud del encabezado en WordPress
Un encabezado largo puede arruinar incluso el diseño más cuidadosamente elaborado. En la página de inicio, donde se muestran extractos, un encabezado de 120 caracteres se desborda de la tarjeta y el diseño se ve roto. Esto afecta especialmente a los sitios con cuadrículas de varias columnas.
La solución es el filtro the_title, que trunca el encabezado a un límite especificado cuando se muestra en la página. El registro real en la base de datos permanece intacto; solo se acorta el texto mostrado.
Código para functions.php:
1 function sdstudio_limit_title_length( $title ) { 2 $max = 60; 3 if ( mb_strlen( $title ) > $max ) { 4 return mb_substr( $title, 0, $max ) . ' …'; 5 } 6 return $title; 7 } 8 add_filter( 'the_title', 'sdstudio_limit_title_length' );
Esto es lo que sucede: mb_strlen cuenta los caracteres correctamente para cirílico (a diferencia de strlen, que cuenta bytes). Cuando se supera el límite de 60 caracteres, el encabezado se trunca y se añaden puntos suspensivos al final para que los lectores entiendan que no es el texto completo. Puede sustituir 60 por cualquier otro número para adaptarlo a su maquetación.
¿Dónde aplicarlo de forma selectiva? Si solo necesita truncar encabezados en un lugar específico (por ejemplo, en un widget de entradas populares), envuelva add_filter en una etiqueta condicional:
1 if ( is_home() || is_front_page() ) { 2 add_filter( 'the_title', 'sdstudio_limit_title_length' ); 3 }
El mismo enfoque funciona para is_archive(), is_category() y cualquier otro contexto.
Cómo cambiar la alineación del encabezado de la entrada
Los temas de WordPress varían. Algunos ofrecen opciones de alineación en el personalizador; otros no. Si su tema pertenece a la segunda categoría, el encabezado se alinea a la izquierda por defecto y no encontrará una opción para esto en el panel de administración.
La alineación del encabezado se establece en la plantilla single.php, el archivo responsable de mostrar las entradas individuales. Solo hay cuatro pasos:

- Abra Apariencia → Editor de temas (o el archivo
single.phpmediante FTP/panel de hosting) - Encuentre la línea
<?php the_title(); ?>, que muestra el encabezado - Envuélvala en una etiqueta con la alineación deseada
Alineación izquierda (predeterminada):
1 <?php the_title(); ?>
Centro:
1 <div style="text-align: center;"><?php the_title(); ?></div>
Derecha:
1 <div style="text-align: right;"><?php the_title(); ?></div>
- Guarde el archivo y abra cualquier entrada; el encabezado aparecerá en la posición especificada
Este método es básico pero funciona para cualquier tema. Un enfoque más limpio es añadir una clase CSS mediante el filtro body_class y aplicar estilo a través de la hoja de estilos, pero para una solución rápida los estilos en línea son suficientes.
Cómo bloquear palabras no deseadas en los encabezados
Una advertencia textual a los autores («por favor, no use la palabra X en los encabezados») funciona hasta el primer plazo de entrega olvidado. Tarde o temprano alguien publicará un encabezado con una frase prohibida y, en el mejor de los casos, la entrada se verá internamente; en el peor, la verá un socio o competidor.
El bloqueo programático resuelve el problema de forma radical: WordPress simplemente impide publicar la entrada si el encabezado contiene una palabra prohibida. El autor ve un mensaje de error y debe corregir el texto antes de publicar.

Código para functions.php:
1 function sdstudio_block_forbidden_title_words( $new_status, $old_status, $post ) { 2 if ( 'publish' !== $new_status || 'publish' === $old_status ) { 3 return; 4 } 5 6 $restricted = array( 'word1', 'word2', 'word3' ); 7 $title = $post->post_title; 8 9 foreach ( $restricted as $word ) { 10 if ( mb_stripos( $title, $word ) !== false ) { 11 wp_die( 'Ошибка: заголовок содержит запрещённое слово — «' . esc_html( $word ) . '». Измените заголовок и попробуйте снова.' ); 12 } 13 } 14 } 15 add_action( 'transition_post_status', 'sdstudio_block_forbidden_title_words', 10, 3 );
Cómo funciona: el hook transition_post_status se dispara ante cualquier cambio de estado de una publicación. Verificamos que el nuevo estado sea publish y que el estado anterior no sea publish (de lo contrario, cada actualización de una publicación ya publicada también se bloquearía). Luego, mb_stripos busca cada palabra prohibida en el título sin distinguir mayúsculas de minúsculas. Si la encuentra, wp_die detiene la publicación con un mensaje claro.
Para añadir su propia palabra, reemplace palabra1, palabra2, palabra3 en el array $restricted. Puede agregar tantas palabras como necesite; la función las recorrerá todas.
Extra: muestre a los autores la lista de palabras prohibidas justo debajo del campo de título. Añada este código al mismo functions.php:
1 function sdstudio_show_restricted_words_notice() { 2 $restricted = array( 'word1', 'word2', 'word3' ); 3 echo '<div style="color:#856404;background:#fff3cd;padding:6px 12px;margin:8px 0;border-radius:4px;font-size:13px;">'; 4 echo 'Запрещённые слова в заголовке: <strong>' . implode( ', ', $restricted ) . '</strong>'; 5 echo '</div>'; 6 } 7 add_action( 'edit_form_after_title', 'sdstudio_show_restricted_words_notice' );
Ahora la lista de palabras prohibidas es visible encima del editor, para que los autores no tengan que adivinar qué está prohibido.
Separador de título y etiquetas de título personalizadas
El separador de título es el símbolo entre el nombre del sitio y el título de la publicación en <title>. En los resultados de búsqueda aparece como «Nombre del sitio | Título de la publicación» o «Nombre del sitio - Título de la publicación». Esto no afecta directamente la tasa de clics, pero distingue visualmente su fragmento del de otros.
Desde WordPress 4.4, el separador se cambia mediante el filtro document_title_separator. El código son solo tres líneas:
1 function sdstudio_change_title_separator( $separator ) { 2 return '|'; 3 } 4 add_filter( 'document_title_separator', 'sdstudio_change_title_separator' );
Puede reemplazar el símbolo de la tercera línea por cualquier carácter: barra vertical, guion, signo mayor que, punto medio. No use caracteres especiales como ★ o →; Google no los muestra y su fragmento en los resultados de búsqueda se verá descuidado.
Para versiones anteriores a WordPress 4.4: la función wp_title está obsoleta, pero si su sitio aún está en una versión anterior, actualice primero (esto es un asunto de seguridad) y luego ajuste el separador. El código antiguo que usa wp_title permanece en la documentación de WordPress como referencia histórica, pero no se recomienda.
Cómo establecer una etiqueta de título personalizada para una publicación individual
Hay situaciones en las que la etiqueta de título para las SERP debe diferir del H1 en la página. Los plugins SEO (Yoast, Rank Math) proporcionan un campo separado para esto. Pero si no usa un plugin SEO, la tarea se resuelve con un campo personalizado y el filtro pre_get_document_title.
Código para functions.php:
1 function sdstudio_custom_title_from_meta( $title ) { 2 if ( is_singular() ) { 3 $custom = get_post_meta( get_the_ID(), 'custom_post_title', true ); 4 if ( $custom ) { 5 return esc_html( $custom ); 6 } 7 } 8 return $title; 9 } 10 add_filter( 'pre_get_document_title', 'sdstudio_custom_title_from_meta', 20 );
Cómo usarlo:
- Abra la publicación que necesita un
<title>personalizado - En el bloque «Campos personalizados» (si no lo ve, actívelo en «Opciones de pantalla») cree un campo llamado
custom_post_title - Ingrese la etiqueta de título deseada como valor, por ejemplo, «Reseña de plugin de caché 2026, comparativa y pruebas»
- Guarde la publicación
Si el campo personalizado no se completa, WordPress usa la etiqueta de título estándar (título de la publicación + separador + nombre del sitio). El mecanismo solo funciona para páginas singulares (is_singular); los títulos en archivos y en el área de administración no se ven afectados.
Nota importante: pre_get_document_title tiene prioridad 20, lo que asegura que el filtro se ejecute DESPUÉS de la formación estándar del título y la sobrescriba.
Vea el video de 6 minutos sobre el tema; muestra el proceso visual de configuración de etiquetas de título a través del administrador de WordPress y plugins SEO.
⁉️🤔 Preguntas frecuentes
¿El código de este artículo funciona en WordPress 6.x (la versión actual en wordpress.org)?
Sí, todo el código ha sido probado en la versión actual de WordPress. Los filtros
the_title,document_title_separatorypre_get_document_titleforman parte del núcleo de WordPress desde las versiones 4.4-5.0 y son totalmente compatibles con WP 6.x. El único cambio respecto a guías anteriores: el hook obsoletopublish_postse ha reemplazado portransition_post_status.
¿Debo editar el archivo functions.php del tema hijo o puedo usar el principal?
Edite siempre el tema hijo. Si edita el
functions.phpdel tema principal, todos los cambios se perderán en la próxima actualización. Si no tiene un tema hijo, cree uno: lleva cinco minutos mediante el plugin Child Theme Configurator o manualmente (un archivostyle.css+ un archivofunctions.phpcon la directivaTemplate:).
¿Puedo lograr el mismo resultado con plugins en lugar de código?
Parcialmente. Para títulos SEO existen Yoast SEO y Rank Math. Para limitar la longitud, hay plugins como Title Length Limiter, pero su soporte no es fiable. Para bloquear palabras y cambiar el separador, no hay plugins estándar; solo funciona el código. Además, cada plugin adicional ralentiza el sitio, mientras que cuatro líneas en
functions.phpno añaden una carga perceptible.
¿Qué debo hacer si el sitio muestra una pantalla en blanco después de editar functions.php?
Conéctese al servidor por FTP o a través del gestor de archivos de su hosting, abra
functions.phpy elimine el código que añadió. Si no tiene acceso FTP, vaya a phpMyAdmin, busque la tablawp_options, la filaactive_pluginsy desactive temporalmente todos los plugins (esto limpiará la caché). Para el futuro: antes de cualquier edición enfunctions.php, activeWP_DEBUGenwp-config.php; así, en lugar de una pantalla en blanco verá el texto del error.
¿El separador del título afecta al SEO?
> No hay un efecto directo en los rankings; Google no evalúa si usted usa | o -. Existe un efecto indirecto: Google puede no mostrar separadores no estándar (★, →) y su fragmento en los resultados de búsqueda se verá peor visualmente. Además, un separador reconocible construye reconocimiento de marca: los usuarios se acostumbran al formato «Marca | Título» y notan sus resultados en la SERP más rápido.
Qué implementar y en qué orden
Las cuatro técnicas anteriores cubren todos los escenarios principales para trabajar con encabezados de WordPress. El orden de implementación va de lo simple a lo complejo:
Primero, cambie el separador de la etiqueta title; son tres líneas de código con resultados instantáneos en los resultados de búsqueda. Luego configure etiquetas <title> personalizadas mediante campos meta si su sitio tiene páginas clave que necesitan títulos separados para la SERP. Después, implemente el filtro de longitud; protegerá el diseño de encabezados excesivamente largos sin ninguna acción por parte de los autores. Finalmente, añada el bloqueador de palabras prohibidas una vez que la lista de frases vetadas haya sido consensuada y aprobada.
Antes de cualquier edición en functions.php, haga una copia de seguridad del archivo: copie su contenido a un editor de texto y guárdelo localmente. Esto lleva diez segundos y ahorrará horas de recuperación en caso de error.



