Cómo generar meta tags dinámicos en Wordpress con un script php
En un post anterior comentamos la importancia de optimizar la etiqueta “Title” de cara a la indexación de los motores de búsqueda. En una página web programada por nosotros podemos especificar meta tags para cada sección o página de nuestra web e incluso podemos generar estas etiquetas dinámicamente a partir de los registros de la base de datos de contenidos de la web. Los expertos en SEO (Search Engine Optimization) recomiendan definir meta tags específicas para cada parte de la web y que tengan referencia con los contenidos que contiene dicha sección en concreto.
El “problema” surge cuando queremos utilizar un gestor de contenido (CMS) como por ejemplo Wordpress. En el caso de un blog en Wordpress, en el panel de administración, tenemos un apartado donde definimos el título (Meta Tag: Title) y la descripción (Meta Tag: description). Estos campos se guardan en la base de datos del blog y se presentan en un <head> casi idéntico para todas las páginas html del blog generadas por Wordpress. Es posible que, según la plantilla de Wordpress utilizada, se presente el mismo Title y Description independientemente de si visitamos la página inicial del blog o un post en concreto.
Para evitarlo y generar meta tags Title y Description específicas para cada post y para la página de inicio, podemos utilizar un script en php muy sencillo. De manera que muestre el título del post y que la descripción sea un resumen de cada entrada. Por el contrario, si estamos en la página inicial del blog, el script nos mostrara el title y description global del blog definido en el panel de gestión de Wordpress.
Ambos scripts deberán definirse en el archivo “header.php” y dentro del encabezado de la página, es decir entre las etiquetas <head> y </head>
Para el título podemos sustituir la etiqueta <title><?php bloginfo(’name’); ?></title> por:
<title>
<?php if ( is_single() ) { ?>
<?php the_title(); ?>
<?php } ?>
<?php if ( is_home() ) { ?>
<?php bloginfo(’name’); ?>
<?php } ?>
</title>
Y en el caso de la descripción, podemos añadir el siguiente script:
<?php if (is_single() || is_page() ) : if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<meta name=”description” content=”<?php the_excerpt_rss(); ?>” />
<?php endwhile; endif; elseif(is_home()) : ?>
<meta name=”description” content=”<?php bloginfo(’description’); ?>” />
<?php endif; ?>
De esta forma tendremos un título y descripción genérica únicamente en la página inicial del blog. En las páginas específicas de cada post, el title será el título del post y la etiqueta description será un resumen del contenido del post.
El excerpt o extracto puede ser definido en el propio panel de escritura de Wordpress, en la parte inferior del editor de entradas, es útil editarlo si queremos mostrar un resumen diferente al generado automáticamente, correspondiente a las primeras líneas del post.
Nota: Ahora que escribo esto, veo que en este blog no está aplicado… tarea pendiente



