Titolo alt della miniatura del post

19 giu 2017, 03:50:56
Visualizzazioni: 51.5K
Voti: 10

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>
0
Tutte le risposte alla domanda 4
1
24

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 ) );
14 giu 2018 18:06:54
Commenti

Questa dovrebbe essere accettata come la risposta corretta

WordPress Speed WordPress Speed
15 lug 2019 10:30:22
0

È 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() ) ] ); 
19 giu 2017 04:14:07
2
-1

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();
}
6 apr 2021 21:24:07
Commenti

È lo stesso di quello di Tom, tranne per il fatto che non utilizza get_post_thumbnail_id(). Cosa c'è che non va con get_post_thumbnail_id()?

Rup Rup
7 apr 2021 02:41:18

@Rup Non fa alcuna differenza. Solo che questo è più semplice e breve.

Mohammad Shiralizadeh Mohammad Shiralizadeh
8 apr 2021 20:07:05
1
-2

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>
19 giu 2017 09:13:37
Commenti

Benvenuto su WPSE. Per favore, aggiungi una spiegazione alla tua risposta: perché quella soluzione potrebbe risolvere il problema? Che ne dici del titolo alternativo richiesto per l'immagine in evidenza del post?

Sven Sven
19 giu 2017 11:09:29