Mostrare automaticamente la prima immagine di un articolo WordPress

Tempo per leggere:1 minuto, 59 secondo

wordpress

Oggi vi mostro una funzione per WordPress che restituisce la prima immagine di un articolo in modo automatico. Tale funzione può esserci davvero d’aiuto nel caso volessimo far apparire in modo automatico una thumbnail (un anteprima) dell’articolo evitando di inserirla ogni volta manualmente. Nel mio caso l’ho utilizzata nella home del sito per avere un immagine per ogni articolo che accompagnasse le poche righe di riassunto dell’articolo.

La funzione

Il codice da inserire nel file functions.php del vostro tema, prima del tag finale ?> è il seguente:

/* Funzione che restituisce la prima immagine di un articolo. Nel caso non esista nessuna immagine all'interno dell'articolo, viene restituita un'immagine predefinita */  

function prendi_prima_immagine()
{
	global $post, $posts;
	$prima_img = '';
	ob_start();
	ob_end_clean();
	$output = preg_match_all('/<img.+src=['"]([^'"]+)['"].*>/i', $post->post_content, $matches);
	$prima_img = $matches [1] [0];
	if(empty($first_img)){
		// Definisco l'immagine di default nel caso non venga trovata nessuna immagine
		$prima_img = get_bloginfo('template_url') . "/images/default.jpg";
		// Il percorso dell'immagine predefinita è a partire dalla cartella del tema in uso
	}
	return $prima_img;
}

Se volete potete personalizzare alcuni parametri come per esempio il percorso e l’estensione del file immagine da assegnare di default. Alla riga 13 è presente tale stringa:

$first_img = get_bloginfo('template_url') . "/images/default.jpg";

Potete variarla per cambiare il nome del file e la sua estensione e, se siete un po’ più esperti, anche il percorso dell’immagine (anche se personalmente non vedo perchè dovreste cambiarla). Ovviamente dovete caricare un immagine a quell’indirizzo, altrimenti nel caso l’articolo non disponga di un immagine propria, non verrà visualizzato proprio nulla.

Come utilizzarla?

Adesso che abbiamo inserito la funzione.. Non ci resta che utilizzarla! Come facciamo a richiamarla? Semplice: posizioniamo dove vogliamo, in base ovviamente alla nostra esigenza, la seguente stringa:

<img src="<?php echo prendi_prima_immagine() ?>" />

Come potete notare, la funzione viene richiamata all’interno del tag HTML img, poichè la funzione in sè restituisce solamente l’indirizzo dell’immagine, sprovvisto del tagimage.

Possiamo ovviamente personalizzare la stringa in modo da renderla più completa magari aggiungendo i parametri alt e title (che andrebbero sempre compilati) o magari rendendola cliccabile come link.