Ir directamente al contenido de esta página

Añadir <meta name="description"/> individual a las entradas de WordPress

Con la publicación del nuevo rediseño de nuestra página hemos aprovechado para mejoras aquellos detalles que en la anterior versión quedaron pendientes. Uno de ellos era encontrar la manera de poder asignar un <meta name="description"/> individual a cada página y entrada del blog, pero sin emplear un plugin.

¿Por qué sin un plugin? Bueno, en general prefiero emplear extensiones cuando se trata de funcionalidades que quiero activar temporalmente y luego desactivar, como por ejemplo el WP Maintenance Mode de Frank Bültge; si lo que voy a hacer es instalar un complemento para que permanezca activo indefinidamente, creo que tiene más sentido añadir la funcionalidad como código a mi tema y así no sobrecargar mi página de administración. Aunque si alguien quiere emplear un plugin, hay decenas.

Dicho esto, veamos el código.

La descripción de las entradas del blog

Viendo que la descripción del meta debe ser un resumen no demasiado extenso de la entrada, ¿qué mejor contenido que el resumen que WordPress permite añadir a cada entrada? Este resumen se incluye en el campo Extracto bajo el formulario de edición; si no aparece, hay que activarlo en Opciones de pantalla → Extracto.

Para que el mismo se convierta en la descripción del documento, en un primer momento simplemente incluí este código en el header.php:


<meta name="description" content="<?php echo get_the_excerpt(); ?>" />'
 

No obstante, surgía un problema, y es que el campo del extracto sólo está disponible para las entradas del blog…

La descripción de las demás páginas

Primero, hay que asignar un resumen a las páginas, algo que es posible gracias a la opción de añadir campos personalizados a una publicación. De nuevo, en Opciones de pantalla podemos activar los Campos personalizados. Una vez hecho esto, al pie del editor de la página tenemos esta interfaz:

La interfaz de campos personalizados [Firefox 9]

Lo que hago es crear un campo desc y añadir la descripción. Tras especificar un campo personalizado, todas las páginas contarán con éste en el desplegable.

Sólo queda extraer su contenido pra incluirlo en el documento, lo que se hace por medio de la función get_post_meta(). Y con esto y un par de detalle adicionales, el código final es el siguiente:


<?php
  if((is_single())&&(has_excerpt())){
    $d = get_the_excerpt();
  } elseif(is_page()){
    $d = get_post_meta(get_the_ID(),'desc',true);
  }
  if($d){
    $d = preg_replace("/<.*?>/", "", $d);
    echo '<meta name="description" content="'.$d.'" />'; 
  }
?>
 

El script comprueba si el documento es una entrada con un extracto o una página, $d almacena esta información, y si no es nula se crea el meta. El preg_replace() limpia las posibles etiquetas de la descripción.

Como se ve, no es complicado. Y nos libra de añadir el enésimo plugin a nuestra instalación.

Esta entrada se publicó el 13 de febrero de 2012, se archivó en PHP, y fue etiquetada como . Autor: Saúl González Fernández. Aún no hay comentarios ›.

Comentarios

Aún no hay comentarios

¿Algún comentario?

* Los campos con un asterisco son necesarios

Últimos proyectos

© Digital Icon, S.L., 2007 – 2012