jblog: news e appunti per webmaster
 

HighlighterI cosiddetti “featured posts” sono un insieme di post che vengono scelti per esser messi in risalto. In questo blog, i “post in evidenza” sono quelli che considero essere i migliori. Mettendoli in risalto ho la possibilità di mostrare il meglio dei miei articoli al nuovo visitatore. Potrebbero esserci altri motivi, ad esempio di tipo commerciale (se i post in evidenza pubblicizzano qualcosa).

Nonostante ci siano un po’ di ottimi plugin per la gestione e la stampa dei “featured posts” ho sviluppato questo mio plugin che, credo, sia diverso dai plugin in circolazione e per certi versi offra una gestione più user friendly. Probabilmente questo sarà un giudizio soggettivo… In pratica, ci sono alcuni plugin che permettono di inserire gli id dei post, separati da virgole, in una casella di testo. Il mio plugin legge i “custom fields” (in italiano “campo personalizzati”) dei post che si decide di mettere in evidenza. In questo senso credo che impostare un campo personalizzato sia un po’ più user friendly rispetto all’aver a che fare con insiemi di numeri. Secondo te?

Per gli impazienti

Per iniziare a utilizzare il plugin:

  1. effettua il download: http://download.jblog.it/wp-plugins/jblog_featured_posts.zip
  2. copialo nella directory “plugins” e attivalo
  3. inserisci la funzione jblog_print_featured_posts() nel punto del template in cui vuoi stampare la lista dei post in evidenza

Per far comparire un determinato post fra i post in evidenza è necessario entrare nella pagina di editing dell’articolo e inserire un campo personalizzato di nome “featured” con il valore “ok” o uno qualsiasi. Il valore non incide sul funzionamento del plugin. Tuttavia consiglio di inserire il valore “ok” in modo da beneficiare di futuri aggiornamenti in cui eventualmente verrà utilizzato.

In profondità

Il plugin è composto da due funzioni:

  • jblog_getFeaturedPosts seleziona i post e li restituisce in un array, ordinati dal più recente al più vecchio
  • jblog_printFeaturedPosts seleziona i post e li stampa sottoforma di lista <ul>…<li>

jblog_getFeaturedPosts

Questa funzione è il cuore del plugin. Seleziona i post e li restituisce in un array. In questo modo potrai essere libero di gestire e stampare i dati restituiti come più ti piace.

La funzione ha 2 argomenti:

  • $args [default "limit=10&len=0"] è una stringa in cui vengono passate le opzioni (nella forma [opzione]=[valore]) separate da “&”. Le uniche due opzioni sono limit (-1 per stampare tutti i post in evidenza, un numero maggiore di 0 per stampare un numero limitato di post) e len per la lunghezza del contenuto (per non selezionare il contenuto basta impostarlo con zero o non impostarla affatto)
  • $metakey [default "featured"] è una stringa utilizzata per impostare il nome del campo personalizzato utilizzato per indicare che il post deve esser messo in evidenza

Esempio

$myarray = jblog_getFeaturedPosts("limit=-1&len=150","myfeatured");

  • $myarray è l’array in cui verranno restituiti i post
  • limit=-1 fa in modo che si selezionino tutti i post che hanno il campo “myfeatured”
  • len=150 imposta il numero di caratteri del contenuto da restituire
  • “myfeatured” è il campo personalizzato utilizzato per indicare che il post deve esser messo in evidenza

L’array restituito dalla funzione è composto dai post selezionati, ordinati dal più recente al più vecchio. Ogni elemento dell’array è a sua volta un array associativo contenente le informazioni del singolo post divise in corrispondenza degli indici “id”, “title”, “link” e “content”.

Esempio

Un semplice esempio per la stampa delle informazioni di ogni singolo post selezionato.

// Seleziona i post
$posts_array = jblog_getFeaturedPosts("limit=20&len=300","myfeatured");

// Ciclo: stampa le informazioni di ogni singolo post
foreach($posts_array as $post)
{
     echo "ID: ".$post['id'];
     echo "Titolo: ".$post['title'];
     echo "Link: ".$post['link'];
     echo "Contenuto: ".$post['content'];
}

jblog_printFeaturedPosts

Oltre a selezionare i post in evidenza, li stampa in una lista del tipo <ul>…<li>.

Gli argomenti sono gli stessi della funzione jblog_getFeaturedPosts (vedi sopra).

Esempio

Questa funzione va utilizzata direttamente all’interno del template inserendo la riga seguente nel punto in cui si desidera visualizzare la lista.

<? jblog_printFeaturedPosts("limit=-1&len=100") ?>

Come impostare un post “in evidenza”

Questo se vogliamo è il lato del plugin un po’ più “macchinoso”.

Per fare in modo che un post venga stampato nella lista dei post in evidenza è necessario andare nella pagina di editing dell’articolo e creare un “custom field” (o campo personalizzato) di nome “featured” oppure uguale all’argomento $metakey passato alle funzioni.

Come valore scrivere una cosa qualsiasi. Tuttavia consiglio di inserire il valore “ok” in modo da beneficiare di futuri aggiornamenti in cui eventualmente verrà utilizzato. Il valore non incide sul funzionamento del plugin, ma è necessario dato che wordpress non permette la creazione di un campo personalizzato senza un valore.

HTML e utilizzo dei CSS

Se utilizzi la funzione jblog_printFeaturedPosts ecco le informazioni che ti servono per poter formattare adeguatamente la lista dei post.

  • Per formattare il contenitore principale della lista (<ul>) fare riferimento all’id “featured_posts”
  • Ad ogni contenitore del singolo post (<li>) viene attribuito l’id “featured_post_” al quale viene aggiunto in coda l’id del post
  • Il titolo di ogni post viene inserito all’interno di un tag <a>, il cui attributo href sarà impostato con il link del post
  • Il contenuto dei post viene inserito in un tag <p>

Vuoi personalizzare il codice html? Apri il file del plugin, individua la funzione jblog_printFeaturedPosts e buon lavoro! ;-)

Esempio dell’output

<ul id="featured_posts">
	 <li>
		<a href="http://...html" id="featured_post_270">Titolo 1 - post 270</a>
		<p>Howwww! Nab him, jab him, tab him, grab him, stop that pigeon now.</p>
	</li>
	<li>
		<a href="http://...html" id="featured_post_320">Titolo 2 - post 320</a>
		<p>Grab him, stop that pigeon now.</p>
	</li>
	<li>
		<a href="http://...html" id="featured_post_450">Titolo 1 - post 450</a>
		<p>Tab him, grab him, stop that pigeon now.</p>
	</li>
</ul>

Script e Download

Per vedere il codice del plugin fai su http://test.jblog.it/wp-plugins/jblog_featured_posts.txt

Per scaricare il plugin vai su http://download.jblog.it/wp-plugins/jblog_featured_posts.zip

Per eventuali segnalazioni e malfunzionamenti scrivi dei commenti a questo post o contattami sull’email che trovi nella pagina “contatti”.

Questo plugin non fa per te? In questa pagina (su wordpress.org) trovi tantissimi plugin riguardanti i “post in evidenza”. Sicuramente ne troverai uno adatto alle tue esigenze! ;-)

Foto: still managed to draw a straight line di deadmanjones

Articoli correlati
Articoli casuali (stesse categorie)
Commenti
Trackbacks
.1
17 Giugno 2009 alle 11:22

Ottimo lavoro!
Anche io propongo una soluzione simile alla tua + una alternativa: WordPress: creare una sezione di post in Evidenza.

.2
17 Giugno 2009 alle 14:26

@Ghido: hai ragione, è molto simile alla tua. Sinceramente è tutto frutto della mia testolina… Hai fatto bene a linkare il tuo post! ;-) Ho imparato una lezione: prima di scrivere un post controllerò gli altri blog (soprattutto italiani).

.3
24 Settembre 2009 alle 11:29

Anche io ho utilizzato plug-in che richiedevano l’inserimento dell’ID numerico di ogni singolo post: è vero, non è affatto comodo, ma è anche vero che non è necessario modificare la lista con frequenza, ma solo “una tantum”.

Adesso utilizzo un plug-in che lavora su categorie e tag, pertanto mi basta associare un post ad una determinata categoria o tag (“in rilievo”) per inserirlo tra i post in evidenza.

Mi sembra che anche la soluzione da te proposta sia comunque abbastanza pratica e funzionale.
Complimenti.

Puoi usare questi tag:   <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

ATTENZIONE. Se inserisci più di 2 link il commento verrà messo in coda, quindi non sarà visibile subito.

jblog: news e appunti per webmaster