Related posts senza plugin? Si può

0 Flares 0 Flares ×

Uno degli strumenti importanti per raccogliere traffico interno al blog è mostrare gli articoli collegati a quello che il visitatore ha appena letto. In WordPress esistono molti plugin che permettono di ottenere un simile risultato. Ne esistono veramente diversi: qualcuno presenta buone caratteristiche, qualcuno ottime funzionalità lato amministrazione. Ma può non essere la soluzione migliore.

Per certi compiti usare un plugin è una forzatura e rende il tutto leggermente più lento, in quanto il l’engine di WordPress deve provvedere a caricare ed eseguire tutti i plugin. Meglio eseguire codice scritto apposta. Il file functions.php potrebbe essere il posto ideale per piazzare lì alcune utili funzioni da utilizzare in lungo e in largo nel nostro tema.

Rispondiamo allora, in questo piccolo articolo, alla domanda del titolo: si può ottenere una lista di articoli related senza usare plugin? Certo. Nel mio blog uso il seguente codice.

L’idea è di partire dalle categorie in cui è inserito il post. Quindi estrarre da ogni categoria gli articoli collegati. La mia soluzione prevede il recupero a ritroso degli articoli più recenti, questo per evitare di doppiare gli articoli più letti che mostro in un apposito widget (test che ho effettuato!), a meno di casuale coincidenza. Ora gli approcci sono due:

  1. inserire il codice all’interno del vostro file functions.php e richiamarlo nel punto esatto del vostro tema;
  2. inserire il codice all’interno del file single.php.

L’opzione numero 2 mi è sembrata nel mio caso la più logica. Ecco il codice:

$_cats = get_the_category($post->ID);
if ($_cats) {
	$_catid = array();
	foreach($_cats as $_item) $_catid[] = $_item->term_id;

	$args=array(
		'showposts'=>5,
		'category__in' => $_catid,
		'post__not_in' => array($post->ID),
		'caller_get_posts'=>1
	);
	$_relposts_query = new wp_query($args);
	if( $_relposts_query->have_posts() ) {
		echo '<h3>Related Posts</h3><ul>';
		while ($_relposts_query->have_posts()) {
			$_relposts_query->the_post();
		?>
			<li><?php if(has_post_thumbnail()) echo get_the_post_thumbnail(get_the_id(), array(50,50)); ?><a href="<?php the_permalink() ?>" rel="bookmark" title="Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
		<?php
		}
		echo "</ul>";
	}	
}

Come potete notare uso la nuova funzione di WordPress relativa ai thumbnails. Per modificare il numero di articoli da mostrare settate il parametro showposts secondo vostre necessità (riferimento wp_query). Per il resto è davvero tutto molto semplice e risulterà chiaro a chi ha un pò d’esperienza con i temi di WordPress.

P.S.

Simile risultato può essere ottenuto giocando con i tag. Anzicchè prendere a riferimento le categorie, come nel mio caso, è possibile recuperare i tag con cui è stato postato un articolo e da lì recuperare i related posts. In tal caso date un’occhiata all’idea di Jean Baptiste Jung.

0 Flares Twitter 0 Facebook 0 Google+ 0 LinkedIn 0 Buffer 0 Email -- 0 Flares ×

2 Comments Related posts senza plugin? Si può

    1. Kiko

      @Gabriele in realtà il post è già vecchio e dovrei controllarlo. Ho fatto l’upgrade a WP 3.2 e funziona comunque ancora. Ero indeciso se trasformarlo o meno in un plugin. L’unica nota stonata: sono in vacanza, sto solo leggendo e scrivendo per i prossimi blog, ma non lavorando in questo periodo. Boh, non vorrei cadere in tentazione e bruciare le mie giornate d’estate a programmare. Ma la tentazione è forte, troppo forte!

      Reply

Lascia il tuo commento

Tranquillo: la tua email non verrà pubblicata.

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