Alt y title en miniaturas de entrada
Quería saber si el atributo "Alt" es necesario al igual que "Title" para las miniaturas de entradas y cómo puedo añadirlo en mi consulta de entradas relacionadas... Estoy usando este código para obtener la miniatura de la entrada:
<div class="td-module-thumb">
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<?php if (has_post_thumbnail()) {
the_post_thumbnail(array(324,235));
} else {
echo '<img src="' . get_bloginfo('template_directory') . '/images/no-thumb/td_324x235.png" />';
}
?>
</a>
</div>

Este ejemplo utiliza el texto alternativo (alt text) tal como está configurado en la biblioteca multimedia. Lo prefiero porque el comportamiento es más consistente para los usuarios que ingresan texto alternativo utilizando las opciones típicas de carga de medios de WordPress.
$thumbnail_id = get_post_thumbnail_id( $post->ID );
$alt = get_post_meta($thumbnail_id, '_wp_attachment_image_alt', true);
the_post_thumbnail( 'full', array( 'alt' => $alt ) );

Es necesario establecer un valor alt
para todas tus imágenes, en caso de que un navegador no pueda cargar la imagen o el visitante esté utilizando un lector de pantalla.
Tienes dos opciones. Puedes usar el título de la imagen destacada (que a veces puede estar vacío) o usar el título de la publicación como alt
.
Puedes obtener el título usando get_post_meta()
. Usarlo es tan simple como esto:
$alt = get_post_meta($image_id, '_wp_attachment_image_alt', true);
echo '<img alt="' . esc_html($alt) . '" src="URL AQUÍ" />';
Sin embargo, debería usarse dentro del loop o recibir el objeto $post
o su ID.
El método alternativo es usar el título de la publicación como texto alt
. Para hacerlo, puedes usar:
echo '<img alt="' . esc_html(get_the_title()) . '" src="URL AQUÍ" />';
Puedes configurar una condición para verificar si la miniatura tiene un título y usarlo en lugar del título de la publicación, si está disponible:
if ($alt = get_the_post_thumbnail_caption()) {
// Nada que hacer aquí
} else {
$alt = get_the_title();
}
echo '<img alt="' . esc_html($alt) . '" src="URL AQUÍ"/>';
ACTUALIZACIÓN
Si deseas agregar el atributo alt
directamente a get_post_thumbnail()
, puedes pasarlo como un array a la función:
the_post_thumbnail('thumbnail', ['alt' => esc_html(get_the_title())]);

La solución más simple es el siguiente código.
$thumbnail_id = get_post_meta( $post->ID, '_thumbnail_id', true );
$img_alt = get_post_meta ( $thumbnail_id, '_wp_attachment_image_alt', true );
echo $img_alt;
O para completar el código:
$thumbnail_id = get_post_meta( $post->ID, '_thumbnail_id', true );
$img_alt = get_post_meta ( $thumbnail_id, '_wp_attachment_image_alt', true );
if(! $img_alt){
$img_alt = get_the_title();
}

Puedes usar el siguiente código en tu Tema de WordPress:
<div class="td-module-thumb">
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<?php if (has_post_thumbnail()) {
echo '<img src="' . the_post_thumbnail_url( array(324,235) ) . '" alt="Texto alternativo" title="Título de la imagen" />';
} else {
echo '<img src="' . get_bloginfo('template_directory') . '/images/no-thumb/td_324x235.png" alt="Texto alternativo" title="Título de la imagen" />';
}
?>
</a>
</div>
