WordPress: visualizzare i post correlati senza plugin
Possiamo fare a meno dei plugin e visualizzare egualmente i post correlati in WordPress.
WordPress non dispone di un widget o di una funzione per i post correlati, e per questo spesso siamo costretti a ricorrere a dei plugin. Tuttavia, possiamo farne a meno utilizzando una semplice funzione creata da noi. Vediamo come.
Aggiungete il seguente codice al file functions.php:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
function show_related_posts() {
global $post;
$tags = wp_get_post_tags($post->ID);
if($tags) {
echo '<h3>Post correlati</h3>' . "\n";
$first_tag = $tags[0]->term_id;
$args = array(
'tag__in' => array($first_tag),
'post__not_in' => array($post->ID),
'showposts'=> 5,
'caller_get_posts'=>1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
echo '<ul>' . "\n";
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php
endwhile;
echo '</ul>' . "\n";
wp_reset_query();
}
}
} |
Quindi potete usare la funzione definita sopra nel file single.php:
|
1 2 3 |
<div id="related-posts">
<?php show_related_posts();?>
</div> |

9 commenti
Ciao, ho provato ma a me non funziona. Stiamo parlando del file functions.php del tema e di wordpress?
La funzione va definita in functions.php e richiamata in single.php.
Ho capito dove sta il problema… testavo la cosa in argomenti senza tag
Ciao Gabriele, ma è possibile visualizzare i post correlati per categoria con questa funzione? Grazie, Antonio
Si, dovresti usare
cat__in.Grazie Gabriele, come sempre disponibile e cortese. Purtroppo non sono riuscito a far funzionare il tutto e per il momento mi tengo stretto il mio similarity che funziona egregiamente…
Senza entrare troppo nello specifico, secondo te come posso far funzionare questo:
Autore: google_profile != "") { ?><a rel="author" href="google_profile; ?>" target="_blank" title="Google +"> } else { <a href="" rel="author">Cioè letteralmente: se l’autore del post ha un profilo google allora linka il nome al suo profilo google, altrimenti linka la pagina autore
Grazie Antonio
Non saprei. Dipende dal plugin che stai usando. Tendenzialmente devi usare un blocco if in questo modo:
if(condizione) {
// la condizione è stata soddisfatta
} else {
// la condizione non è stata soddisfatta
}
Non so come faccia il tuo codice a verificare se un utente ha un account su Google+, perchè non ho mai usato sinora le API di Google+ per i suoi profili.
Ciao Gabriele, approfitto solo un po’ della tua pazienza. In un blog multiautore alcuni hanno compilato il campo “google_profile” e altri no.
Io voglio dire: se l’autore dell’articolo ha compilato il campo google_profile allora linka il suo nome al suo profilo, altrimenti linka il suo nome alla pagina autore.
Grazie!
Questo articolo fa al caso tuo: http://www.famousbloggers.net/custom-fields-wordpress.html
Dovresti usare questa funzione di WP: http://codex.wordpress.org/Function_Reference/get_the_author_meta
Devi testare se il valore di google_profile è vuoto o no, ossia:
if($google_profile == '') {...}I commenti sono chiusi.