Wordpress: abilitare e gestire le thumbnail senza modificare la struttura di un tema

Abilitare il supporto alle thumbnail in Wordpress è abbastanza semplice. Tutto quello che dobbiamo fare è aggiungere poche righe di codice al nostro file functions.php. Il problema sorge quando il contenuto del nostro post (the_content()) inizia proprio con l'immagine in evidenza che abbiamo scelto a dimensioni intere. In altre parole, vogliamo che nella home page ci sia solo la thumbnail e che nei singoli post ci sia l'immagine intera. Vediamo come fare senza modificare la struttura del nostro tema.

Per prima cosa abilitiamo il supporto alle thumbnail nel nostro tema:


if (function_exists('add_theme_support')) {
    add_theme_support('post-thumbnails');
    add_image_size('index-categories', 190, 150, true);
}

I valori numerici della funzione add_image_size() generano le dimensioni della thumbnail. A questo punto dobbiamo aggiungere la thumbnail nella home page:


function insert_featured_image($content) {
 
	global $post;
 
	$original_content = $content;

	if(is_home()) {
 
    	if ( current_theme_supports( 'post-thumbnails' ) ) {

 
       
            $content = the_post_thumbnail('index-categories');
            $content .= $original_content;

	
       
 
    	}
	}
    return $content;
}
 
add_filter( 'the_content', 'insert_featured_image' );

La funzione is_home() ci permette di verificare che la thumbnail venga inserita solo nella home page. Ora non ci resta che trasformare questa struttura HTML:


<p><img src="image.jpg" />...</p>

in questa:


<p>...</p>

Ecco il codice:


function remove_first_image($content) {

    global $post;


    if(is_home()) {

      $content = preg_replace('/<p><img[^>]*\/>/', '<p>', $content);
      

    }

    return $content;

}

add_filter( 'the_content', 'remove_first_image' );

Tramite le espressioni regolari PHP di tipo PCRE rimuoviamo l'immagine intera solo nella home page, lasciando così la sola thumbnail.

Torna su