Informativa sui cookie

Salta al contenuto

Come aggiungere in automatico le immagini in evidenza

Questo articolo ha oltre sei mesi di vita, quindi, mi raccomando, verifica le informazioni contenute in quanto potrebbero essere ormai obsolete.

Come aggiungere in automatico le immagini in evidenza è una domanda ricorrente.

Capita di cominciare a utilizzare un sito senza impostare le immagini in evidenza.

Poi si cambia tema e questo nuovo tema supporta le immagini in evidenza e noi non ne abbiamo impostata neanche una.

Bel casino, andare ad aggiungere immagini in evidenza post per post è un lavoro lungo e noioso.

Per questo ho realizzato questo script che potete utilizzare liberamente, è rilasciato con licenza GPL 2 o successiva.

Cosa fa questo script?

Lo script è diviso in due parti:
Una funzione che cerca le immagini presenti nel post

  1. Uno script da inserire nel CHILD THEME al posto della funzione per mostrare le thumbnail
  2. Una funzione che va a cercare le immagini non attached al post ma presenti sotto forma di link

Come funziona la gestione delle immagini in WordPress:

Quando scrivete un post, utilizzando il pulsante aggiungi media, potete caricare immagini che vengono attached al post. Questo significa che nel database verra inserito un record con tutti i dati dell’immagine, con un ID univoco e con la correlazione al post.

Potete anche inserire, semplicemente, il link a un’altra immagine NON attached al post, ma attached a un altro post o anche presente su altri domini.

Lo script che ho creato gestisce tutti questi casi

La logica dello script:

Per prima cosa lo script verifica se è impostata l’immagine in evidenza.

Se è impostata la visualizza e tutto finisce.

Se non è impostata verifica se ci sono immagini attached al post.

Se ci sono, prende la prima immagina e la imposta, automaticamente, come immagine in evidenza e la visualizza.

Dal prossimo accesso al post l’immagine in evidenza è impostata e quindi si ferma al primo step.

Se non ci sono immagini attached al post viene richiamata la funzione che cerca le  immagini inserite solo tramite link.

Se ne trova, ne prende una e la visualizza come immagine in evidenza. Attenzione che NON la imposta come immagine in evidenza.

Se non trova immagini ne visualizza una scelta da voi.

La funzione per trovare le immagini presenti nel post solo come link:

Questa funzione dovete inserirla nel file functions.php; del vostro CHILD THEME,  oppure in un vostro plugin di utilità.


function wolly_get_first_post_image(){

if( $output = preg_match_all( '/<img.+src=\'"[\'"].*>/i', $post->post_content, $matches ) ){

$first_img = $matches[1][0];

} else {

$first_img = 'http://yoururl.tld/image-url';
}

return $first_img;
}

Lo script per sostituire la funzione del vostro tema che visualizza le immagini in evidenza:

Dove inserirlo?
Dipende da come è scritto il vostro tema, di base nel file index.php e nel file single.php ma ogni tema è una storia diversa


if ( get_the_post_thumbnail( $post_id ) != '' ) {

 echo '<a href="'; the_permalink(); echo '" class="thumbnail-wrapper">';
 the_post_thumbnail();
 echo '</a>';

 } else {

 $images = get_attached_media( 'image' );

 if ( ! empty( $images ) ){

 $image = reset($images);

 $first_image = $image->ID;

 set_post_thumbnail( $post_id, $first_image );

 echo '<a href="'; the_permalink(); echo '" class="thumbnail-wrapper">';
 the_post_thumbnail();
 echo '</a>';

 } else {

 echo '<a href="'; the_permalink(); echo '" class="thumbnail-wrapper">';
 echo '<img src="'; echo wolly_get_first_post_image(); echo '" alt="" />';
 echo '</a>';

 }

 }

Per qualsiasi dubbio, suggerimento o proposte di miglioramento, scrivete nei commenti.

 

Ho una Newsletter che parla di WordPress

Questo è l'archivio

Iscriviti alla mia Newsletter

Published inPillole WordPressWordpress

2 Comments

    • Ci avevo pensato, ma ogni tema fa a modo suo.

      Quasi sempre mettono un costrutto if per verificare se c’è la thumbnail.

      Se però hai qualche idea per implementarlo sul filtro, sei il benvenuto.

      A breve metto tutto su github

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Pagina 1 di 11
%d blogger hanno fatto clic su Mi Piace per questo: