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.