Titolo alt della miniatura del post
Vorrei sapere se l'attributo "Alt title" è necessario come il "Title" per le miniature dei post e come posso aggiungerlo nella mia query dei post correlati... Sto usando questo codice per ottenere la miniatura del post:
<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>

Questo esempio utilizza il testo alternativo così come è impostato nella libreria multimediale. Lo preferisco perché il comportamento è più coerente per gli utenti che inseriscono il testo alternativo utilizzando le tipiche opzioni di caricamento multimediale di 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 ) );

È necessario impostare un valore alt
per tutte le immagini, nel caso in cui un browser non possa caricare l'immagine o il visitatore stia utilizzando uno screen reader.
Hai due opzioni. Puoi utilizzare la didascalia dell'immagine in evidenza (che a volte può essere vuota) oppure il titolo del post come alt
.
Puoi ottenere la didascalia utilizzando get_post_meta()
. Utilizzarlo è semplice come questo:
$alt = get_post_meta ( $image_id, '_wp_attachment_image_alt', true );
echo '<img alt="' . esc_html ( $alt ) . '" src="URL HERE" />';
Tuttavia, dovrebbe essere utilizzato all'interno del loop oppure ricevere l'oggetto $post
o il suo ID.
Il metodo alternativo è utilizzare il titolo del post come testo alt
. Per farlo, puoi usare:
echo '<img alt="' . esc_html ( get_the_title() ) . '" src="URL HERE" />';
Puoi impostare una condizione e verificare se l'anteprima ha una didascalia, e utilizzarla al posto del titolo del post, se disponibile:
if ( $alt = get_the_post_thumbnail_caption() ) {
// Nessuna operazione necessaria qui
} else {
$alt = get_the_title();
}
echo '<img alt="' . esc_html ( $alt ) . '" src="URL HERE"/>';
AGGIORNAMENTO
Se desideri aggiungere l'attributo alt
direttamente a get_post_thumbnail()
, puoi passarlo come array alla funzione:
the_post_thumbnail( 'thumbnail', [ 'alt' => esc_html ( get_the_title() ) ] );

La soluzione più semplice è il seguente codice.
$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;
Oppure per completare il codice:
$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();
}

Puoi utilizzare il seguente codice nel tuo tema 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="Testo alternativo personalizzato" title="Titolo immagine" />';
} else {
echo '<img src="' . get_bloginfo('template_directory') . '/images/no-thumb/td_324x235.png" alt="Immagine di default" title="Miniatura non disponibile" />';
}
?>
</a>
</div>
