Contenuto in Evidenza permette agli utenti di portare in primo piano i propri articoli e di visualizzarli attraverso un tema univoco. L’intento è quello di visualizzare il contenuto sulla prima pagina di un blog; utilizzando costantemente il modulo con questo obbiettivo, gli utenti beneficeranno di un sistema affidabile per fruire dei propri contenuti in evidenza, su cui poter contare anche sostituendo il tema del proprio sito.
Per iniziare puoi seguire questi semplici passaggi:
- Abilita il supporto al Contenuto in Evidenza per il tema.
- Vai su Impostazioni → Lettura, quindi imposta una tag scrivendone il nome nel campo “Nome tag”, alla voce Contenuto in Evidenza.
- Tagga qualche contenuto.
Per informazioni più dettagliate, continua a leggere! Oppure salta direttamente ai sugerimenti sull’utilizzo, passa ad abilita il supporto per il tuo tema o suggerimenti sui modelli.
Utilizzo
Se il tuo tema supporta Contenuto in Evidenza, puoi attivare l’area dedicata agli articoli in primo piano dirigendoti su Impostazioni → Lettura ed inserendo il nome per una tag nel campo “Nome tag”. Se il nome per la tag da te inserito non è già esistente verrà creata una nuova tag. Una volta impostato questo dato, gli articoli pubblicati taggati con questo valore saranno inclusi nell’area del Contenuto in Evidenza.
Se vuoi impostare un limite al numero di articoli in evidenza, puoi sovrascrivere il valore di “Numero di articoli”. L’impostazione predefinita di Contenuto in Evidenza è impostata per restituire un massimo di 15 articoli; tuttavia, anche il tema stesso può definire il numero massimo di articoli. Cambiare questo valore può essere necessario se il tema utilizza, ad esempio, ampie immagini in primo piano per presentare il contenuto in evidenza.
“Non mostrare la tag nei metadati dell’articolo e nelle nuvole di tag” è selezionato, questo assicura che la tag selezionata per Contenuto in Evidenza non venga visualizzata nella lista di tag disponibili per gli articoli e nel widget Tag Cloud. Il tuo archivio di tag continuerà, invece, ad essere visualizzato in modo normale.
Aggiungere il Supporto ad un Tema
Il primo passo per aggiungere il supporto per Contenuto in Evidenza al tuo tema è quello di richiamare add_theme_support()
passando ‘featured-content’ come primo parametro. La variabile add_theme_support()
deve essere richiamata all’interno dell’azione after_setup_theme
.
add_theme_support( 'featured-content', array( 'filter' => 'mytheme_get_featured_posts', 'max_posts' => 20, 'post_types' => array( 'post', 'page' ), ) );
Il secondo parametro, $args
, è un array che può contenere 3 valori distinti. Il primo è obbligatorio mentre gli altri 2 sono opzionali:
- featured_content_filter – Il nome di un filtro personalizzato, utilizzato per restituire contenuto in evidenza. Deve essere inserito come suffisso all’abbreviazione del tema.
- max_posts – Il numero massimo di articoli che può essere inserito nell’area. E’ possibile che un tema possa ospitare nell’area soltanto sei articoli. In questo caso,
max_posts
deve essere impostato su sei. - additional_post_types – Come impostazione predefinita, il modulo Contenuto in Evidenza accetta solamente articoli. Tuttavia, puoi aggiungere il supporto a Contenuto in Evidenza per tipologie aggiuntive di articoli, definendo l’elemento
additional_post_types
(sotto forma di stringa o array).
Funzione di Richiamo
Si deve creare una funzione che restituisca il valore del filtro precisato in add_theme_support( 'featured-content' )
. Questo verrà utilizzato per assegnare gli articoli in evidenza ad una variabile contenuta in un file di modello.
function mytheme_get_featured_posts() { return apply_filters( 'mytheme_get_featured_posts', array() ); }
Funzione Condizionale
Possiamo evitare che il procedimento venga riportato e che la sintassi sia messa in coda quando non è necessario, basta inserire una funzione per aiutarci quando si prendono queste decisioni. Questa funzione dovrà restituire un valore Booleano ed accettare un singolo parametro. Questo parametro regola il numero minimo di articoli in evidenza richiesti, per restituire il valore true
.
function mytheme_has_featured_posts( $minimum = 1 ) { if ( is_paged() ) return false; $minimum = absint( $minimum ); $featured_posts = apply_filters( 'mytheme_get_featured_posts', array() ); if ( ! is_array( $featured_posts ) ) return false; if ( $minimum > count( $featured_posts ) ) return false; return true; }
Per esempio, in caso di un caricamento dinamico, a scorrimento, possiamo utilizzare mytheme_has_featured_posts()
in diversi modi per aggiungere il markup ed accodare la sintassi. Dato che il nostro slider mostra un articolo per volta, necessiteremmo di un markup per ogni ulteriore articolo in evidenza, ma di accodare il Javascript dello slider soltanto se ci sono due o più articoli rimanenti.
// Trovato nel nostro file modello <?php if ( mytheme_has_featured_posts( 1 ) ) : ?> <div class="featured-content"> <?php get_template_part( 'content-featured.php' ); ?> </div> <?php endif; ?>
// In functions.php, in una funzione che si inserisce in wp_enqueue_scripts if ( mytheme_has_featured_posts( 2 ) ) { wp_enqueue_script( 'mytheme-slider-script', get_template_directory_uri() . '/js/awesome-slider.js', array( 'jquery' ) ); }
Modelli
Per utilizzare la stessa procedura in temi differenti, abbiamo sviluppato il concetto di area della pagina principale per i contenuti in evidenza. Quest’area verrà sempre visualizzata nella “Pagina iniziale” di un’installazione WordPress – in altre parole, quest’area sarà sempre renderizzata quando la funzione is_front_page()
restituisce true
. A seconda della progettazione del tema e delle impostazioni del sito, is_front_page()
può restituire true
in diversi modelli di pagina. L’area Contenuto in Evidenza dovrebbe essere renderizzata nei seguenti modelli di pagina, se presenti:
Temi che includono front-page.php
Il modello front-page.php, se presente nel tema, sarà sempre utilizzato per creare la prima pagina. Se il tuo tema è provvisto di questo modello, non è necessario aggiungere altrove l’area per i contenuti in evidenza.
Temi senza front-page.php
Se front-page.php non è incluso nel tuo tema, l’area Contenuto in Evidenza andrebbe essere aggiunta ai seguenti modelli, quando presenti:
- page.php
- home.php
- index.php
- Tutti i modelli di pagina personalizzati.