Articles

Cómo obtener el título de la página actual en WordPress

A veces queremos obtener el título de la página actual, que se muestra en la etiqueta <title>. Aquí me refiero a la página en sentido general, no a la «página» de WordPress. Tenemos varias funciones de WordPress que pueden ayudar como:

  • get_the_title(): para obtener el título actual de post/page/cualquier tipo de post
  • single_cat_title(): para obtener el título actual de la categoría. También hay funciones hermanas para las etiquetas y los términos: single_tag_title() y single_term_title()
  • get_bloginfo(): para obtener el nombre del blog
  • etc.

Usar esas funciones son geniales, pero tienen algunas desventajas:

  • Esas funciones son específicas para páginas particulares como post/página única, categoría/etiqueta, … páginas. Pero podemos tener muchos tipos de páginas en WordPress como: Página 404, página de resultados de búsqueda, página de archivo o incluso página virtual.
  • El título se muestra de forma diferente en los temas: puedes usar un tema que tenga el título en formato Post Title | Blog Name, pero otro tema puede usar Post Title solamente. Usted puede hacer una combinación de las funciones anteriores para lograr el título correcto, pero que no se utilizará ampliamente para otros temas.
  • O usted podría establecer el título de varias maneras con SEO plugins

En este post, voy a utilizar un simple truco que puede resolver estos problemas rápidamente.

Estoy seguro de que todos nosotros estamos familiarizados con la función wp_title(), a menudo usamos esta función en el archivo header.php, así:

<title><?php wp_title( '|', true, 'right' ); ?></title>

para mostrar el título de la página (debe utilizar sólo esta función para mostrar el título de la página, de lo contrario su sitio tal vez no es compatible con los plugins de SEO o causa problema de rendimiento).

El truco es cambiar el segundo parámetro $echo de true a false para obtener el valor del título de la página actual:

$title = wp_title( '|', false, 'right' );

Aquí hay un ejemplo donde esta técnica es útil. Vamos a mostrar un botón de Twitter. Voy a utilizar otra técnica fresca para obtener la URL de la página actual:

global $wp;$link = add_query_arg( $wp->query_string, '', home_url( $wp->request ) );$text = wp_title( '|', false );printf( '<iframe allowtransparency="true" frameborder="0" scrolling="no" src="https://platform.twitter.com/widgets/tweet_button.html?url=%s&text=%s&count=horizontal"></iframe>', urlencode( $link ), rawurlencode( $text ));

Actualmente estoy usando el script anterior (con algunas adiciones para Facebook como, botones de Google+) para mis sitios web. Y está funcionando muy bien en las páginas de archivo donde construido en funciones de WordPress no son muy útiles.