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:
- inserire il codice all’interno del vostro file functions.php e richiamarlo nel punto esatto del vostro tema;
- 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.






























2 Commenti
Grande post! Finalmente si può fare senza plugin! Grazie
@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!