WordPress 4.1 introdujo un nuevo modo de añadir etiquetas de título en los temas. En vez de escribir código a pelo las tags <title>
con WP_title()
, una llamada a add_theme_support( 'title-tag' )
ofrecía el código necesario en la cabecera de la página. Esto se lograba gracias a la función privada _WP_render_title_tag()
enlazada a wp_head
.
WordPress 4.4 ha dado un paso adelante en la hoja de ruta hacia una gestión más flexible de los títulos de documentos, introduciendo una nueva función WP_get_document_title()
que devuelve el título de la página actual.
Esta función se usa ahora mediante _WP_render_title_tag()
en vez de con WP_title()
:
function _wp_render_title_tag() { if ( ! current_theme_supports( 'title-tag' ) ) { return; } echo '<title>' . wp_get_document_title() . '</title>' . "\n"; }
Esto significa que si añades compatibilidad con la etiqueta de título a tu tema, y usas el filtro WP_title
para modificar la visualización del título ya no funcionará en WordPress.
Esto es debido a que WP_get_document_title()
usa sus propios filtros para modificar la visualización:
pre_get_document_title
: Usando este filtro se consigue que deje de funcionarWP_get_document_title()
antes de que se lance, y se devuelve la cadena facilitada.document_title_separator
: Este filtro se puede usar para filtrar el separador que se suele usar entre las distintas partes de un título. El separador por defecto es un guión (-). Además, WordPress añade espacios alrededor del separador en una parte posterior de la función, así que al final será ( – ).document_title_parts
: Este filtro se aplica más adelante enWP_get_document_title()
. Manda un array asociativo que contiene las distintas partes del título. Siempre se establece la clave del título, sea cual sea la página, y la descripción y las palabras clave del sitio solo se definen en contextos concretos.
En la entrada en la que se habló por primera vez de esta característica en el blog de Make/Core se mencionaba en concreto que estos filtros eran para su uso en plugins.
En los temas lo único necesario es declarar la compatibilidad con las etiquetas de título, dejando la creación y visualización del título a WordPress y los plugins.
La idea es que se incorpore en futuras versiones de WordPress una interfaz de usuario que permita al usuario modificar la visualización del título.
Como bien comentó algún usuario del blog hace unos días, con el lanzamiento de WordPress 4.4, en principio se marcó como obsoleta la etiqueta WP_title()
, pero más adelante se reincorporó al desarrollo de WordPress 4.4.
Aunque es verdad que es mejor que no se haya marcado como obsoleta (aún), es totalmente recomendable adaptar cuanto antes tu tema al nuevo código para asegurarte de que todo funcionará en un futuro (cercano). El SEO es importante y estas etiquetas afectan directamente al posicionamiento de tu web WordPress.
Si quieres actualizar tu tema a la nueva forma de gestionar el título, recuerda que lo único que debes hacer si usas ya WordPress 4.4 o superior es añadir lo siguiente al archivo functions.php
de tu tema:
add_theme_support( 'title-tag' );
WordPress se ocupa de hacer el resto internamente cuando encuentre en la cabecera (header.php
) la etiqueta <title>
.
Referencias:
- WP Best Practices.
- Make WordPress.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Pues ahora sí que no entiendo nada. ¿Qué es exactamente lo que hay que añadir a los temas? ¿Es necesario añadir en el archivo functions.php el soporte para «title-tag»? Es decir, ¿hay que añadir `add_theme_support( ‘title-tag’ );`? ¿Y luego? ¿en head ya nada?
¿Podrías, por favor, explicarlo un poco más detalladamente?
Es así, puedes añadirle compatibilidad hacia atrás como comentamos aquí: https://ayudawp.com/wordpress-4-4-dejara-de-usar-wp_title/
Gracias por la aclaración. Queda bastante más claro pero aún hay un punto que puede llevar a dudas. Dices … «cuando encuentre en la cabecera (header.php) la etiqueta »
¿Significa eso que debemos dejar como tengamos puesta ahora la etiqueta Title en el header?
Igual llego tarde para responder pero… yo eliminé de header.php y agregue la linea add_theme_support( ‘title-tag’ ) a functions.php y todo OK.
La verdad es que es bastante liosa la explicación, y esa última linea del artículo creo que no tiene mucho sentido.
Perfecto, estaba teniendo problemas al mostrar el título de las entradas con el Page Builder de mi plantilla y añadiendo esa simple línea de código…¡Solucionado! Mil gracias
Buenos días! Primero decir que tu blog y este articulo me parecen muy interesantes. Quería exponer mi problema, aunque no se si tiene que ver exactamente con la nueva etiqueta de título, el caso es que mi home, en el código aparece correctamente el «title» (descripción | titulo del sitio) pero en google aparece justo al revés y con puntos (titulo del sitio : descripción), y esto solo me ocurre en la home porque en las demás paginas me aparece bien el titulo. Lo he revistado mil veces, la plantilla, el plugin Seo by Yoast pero no le encuentro la solución…¿Alguna idea? Gracias!