Si tienes un sitio web creado con WordPress necesitas incluir los metatags (title, description) que se utilizarán en los resultados de búsqueda.
Aprovechando los métodos de WordPress crearemos dos funciones para crear y formatear automáticamente el título y la descripción de la página, esto lo haremos en el archivo functions.php para que puedan usarse en el template.
Título
La etiqueta <title>
contiene el titulo y debe contemplar las siguientes recomendaciones:
- No debe exceder los 60 caracteres
- Debe contener el título del artículo, de la categoría o de la página actual.
- Si es una página interna debe concatenarse con el nombre del sitio.
- No debe contener etiquetas HTML.
Con esta información creamos una función para generar el título:
/**
* Make and format title on WordPress
*/
function make_title()
{
$sitename = get_bloginfo("name");
$maxlength = 60;
$maxlength = $maxlength - strlen($sitename) - 3;
// title of article or page
if (is_page() || is_single()) {
$title = get_the_title();
}
// title of category
if (is_category()) {
$title = single_cat_title('', false);
}
// clean title
$title = strip_tags($title);
$title = trim($title);
// limit title to max characters
if (strlen($title) > $maxlength) {
$subtext = substr($title, 0, $maxlength - 3);
$endspace = strrpos($subtext, ' ');
$title = substr($subtext, 0, $endspace) . '...';
}
// if internal page concatenate Sitename
if (is_page() || is_single() || is_category()) {
$title = $title . " | " . $sitename;
} else {
$title = $sitename;
}
echo $title;
}
Descripción
La etiqueta <meta name="description">
contiene un resumen del contenido de la página actual y debe seguir las siguientes recomendaciones:
- No debe exceder los 160 caracteres
- Para el home debe contener la descripción del sitio.
- Para las internas debe contener un resumen de la página.
- No debe contener etiquetas HTML.
Con esta información creamos una función para generar la descripción:
/**
* Make and format description on WordPress
*/
function make_description()
{
$maxlength = 160;
$description = get_bloginfo("description");
// description of article or page
if (is_page() || is_single()) {
$description = get_the_excerpt();
}
// description of category
if (is_category()) {
$description = category_description();
}
// clean description
$description = strip_tags($description);
$description = trim($description);
// limit description to max characters
if (strlen($description) > $maxlength) {
$subtext = substr($description, 0, $maxlength - 3);
$endspace = strrpos($subtext, ' ');
$description = substr($subtext, 0, $endspace) . '...';
}
echo $description;
}
Ejemplo de uso
Una vez creadas las funciones, sólo tienes que llamar estas funciones en el archivo header.php de la siguiente manera:
<html lang="es">
<head>
<meta charset="uft-8">
<title><?php make_title(); ?></title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?php wp_head(); ?>
</head>
Se puede observar que se han contemplado sólo los títulos de: home, categorías, paginas y artículos. Pero dependiendo de tus necesidades puedes agregar nuevas reglas para: archivos, autores o tags.
Comentarios