WordPress – Automatizzare l’Immagine in Evidenza


Una immagine in evidenza, una volta chiamata miniatura del post, è un’immagine scelta come rappresentativa per articoli, pagine o altri tipi personalizzati di post; rappresenta un elemento di vitale importanza poiché essa riesce a catturare l’attenzione del visitatore più di un titolo ad effetto.
Inoltre, nei portali tematici o nei siti istituzionali delle scuole, risulta molto d’impatto e di facile consultazione l’associazione di una immagine in evidenza personalizzata per ciascuna categoria.

Sono molte le funzioni che consentono di gestire la “featured image“:

has_post_thumbnail()
the_post_thumbnail()
get_the_post_thumbnail()
add_image_size()
set_post_thumbnail_size()
get_post_thumbnail_id()

Le dimensioni predefinite delle immagini di WordPress sono “thumbnail”, “medium”, “large” e “full” (la dimensione dell’immagine così come caricata). Queste dimensioni possono essere configurate nel pannello di amministrazione Media in Impostazioni > Media. Le dimensioni predefinite possono anche essere gestite tramite codice mediante la funzione get_the_post_thumbnail():

get_the_post_thumbnail($post_id);
get_the_post_thumbnail($post_id, ‘thumbnail’);
get_the_post_thumbnail($post_id, ‘medium’);
get_the_post_thumbnail($post_id, ‘large’);
get_the_post_thumbnail($post_id, ‘full’);
get_the_post_thumbnail($post_id, array(100,100) );

Per automatizzare la visione di una immagine in evidenza, soprattutto se la si vuole associare alla categoria e non al singolo post, si può far ricorso ad appositi snippet all’interno del file functions.php o una serie di plugin precofenzionati.
Esiste però una ulteriore alternativa anche per chi mastica il php in maniera elementare: essa consiste nell’aggiungere un frammento di codice ad esempio all’interno del file del template category.php.

<?php 
	if ( has_post_thumbnail() ) { // controlla se il post ha un'immagine in evidenza assegnata.?>
		<img src="<?php the_post_thumbnail_url( 'full' ); ?>" class="aligncenter" width="50%" alt="<?php the_title(); ?>"/>
<?php } 
	else {
		$Categoria = get_the_category();
		$CategoriaID = get_category($Categoria[0]->term_id);
		$CategoriaNome=$CategoriaID->name;
		switch ($CategoriaNome) {
			case 'Scuola':
				echo '<img src="wp-content/themes/.../ScuolaS.jpg" class="aligncenter" alt="Categoria: Scuola" width="100%" />';
				break;
			case 'CategA': 
				echo '<img src="wp-content/themes/.../CategAS.jpg" class="aligncenter" alt="Categoria: CategA" width="100%" />';
				break;
			case 'Fondi Strutturali': 
				echo '<img src="wp-content/themes/.../CategBS.jpg" class="aligncenter" alt="Categoria: Fondi Strutturali" width="100%" />';
				break;
			case 'Pillole 2.0': 
				echo '<img src="wp-content/themes/.../CategCS.jpg" class="aligncenter" alt="Categoria: CateC" width="100%" />';
				break;
			case 'CategD': 
				echo '<img src="wp-content/themes/.../CategDS.jpg" class="aligncenter" alt="Categoria: CategD" width="100%" />';
				break;
			default:
				break;
			}
	} 
?>

Naturalmente, con tale soluzione, la “featured image” non sarà memorizzata nel database e varierà in base alla categoria.

Visite: 106