Volete visualizzare un elenco di post correlati sul vostro sito WordPress e preferite usare il codice piuttosto che un plugin?
Noi di WPBeginner sottolineiamo spesso l’importanza di coinvolgere il pubblico e di fargli esplorare i contenuti. Una strategia efficace che abbiamo visto utilizzare in innumerevoli siti WordPress di successo è la visualizzazione dei post correlati.
Quando i visitatori del vostro blog hanno finito di leggere un articolo di loro interesse, offrire un elenco di post correlati li terrà impegnati e li aiuterà a trovare nuovi contenuti da leggere.
In questo articolo vi mostreremo come visualizzare gli articoli correlati con WordPress utilizzando il codice, senza bisogno di plugin richiesti.
Perché mostrare le pubblicazioni correlate in WordPress?
Quando il vostro blog WordPress inizia a crescere, può diventare più difficile per gli utenti trovare altri articoli sullo stesso argomento.
Visualizzare un elenco di contenuti correlati alla fine di ogni articolo del blog è un ottimo modo per mantenere i visitatori sul sito web e aumentare le pagine viste. Inoltre, contribuisce a migliorare la visibilità delle pagine più importanti, visualizzando i contenuti migliori dove gli utenti possono trovarli facilmente.
Se non avete dimestichezza con il codice, allora sarà più semplice scegliere uno dei tanti plugin per i post correlati di WordPress, in grado di visualizzare gli articoli correlati senza codice.
Ma se vi siete mai chiesti se sia possibile visualizzare i post correlati senza usare un plugin, condivideremo due diversi algoritmi che potete usare per generare post correlati con immagini in evidenza usando solo il codice:
Nota: se si desidera mostrare un’immagine in evidenza per ogni articolo correlato, assicurarsi di aggiungere prima un’immagine in evidenza a tali articoli.
Metodo 1: come mostrare gli articoli correlati in WordPress in base ai tag
Un modo efficace per individuare i contenuti correlati è cercare altri articoli che condividono gli stessi tag. I tag sono spesso utilizzati per concentrarsi sui dettagli specifici contenuti in un articolo.
Tenendo conto di ciò, è possibile aggiungere alcuni tag comuni agli articoli che si desidera mettere in relazione tra loro. Potete inserirli nel box “Tag” dell’editore di WordPress.
Dopo aver aggiunto i tag agli articoli successivi, la cosa da fare è aggiungere il seguente frammento di codice al template single.php
del tema.
Se avete bisogno di aiuto per aggiungere codice al vostro sito, fate riferimento alla nostra guida su come incollare snippet dal web in WordPress.
$orig_post = $post;
global $post;
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
$args=array(
'tag__in' => $tag_ids,
'post__not_in' => array($post->ID),
'posts_per_page'=>5, // Number of related posts that will be shown.
'ignore_sticky_posts'=>1
);
$my_query = new wp_query( $args );
if( $my_query->have_posts() ) {
echo '<div id="relatedposts"><h3>Related Posts</h3><ul>';
while( $my_query->have_posts() ) {
$my_query->the_post(); ?>
<li><div class="relatedthumb"><a href="<?php the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><!--?php the_post_thumbnail(); ?--></a></div>
<div class="relatedcontent">
<h3><a href="<?php the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><!--?php the_title(); ?--></a></h3>
<!--?php the_time('M j, Y') ?-->
</div>
</li>
<!--?php }
echo '</ul--></ul></div>';
}
}
$post = $orig_post;
wp_reset_query();
Questo codice cerca i tag associati a una pagina ed esegue una query del database per recuperare le pagine con tag simili.
Dove posizionare il codice? Dipende dal tema, ma nella maggior parte dei casi si dovrebbe poter incollare il codice nel template single.php del tema dopo l’articolo principale e proprio sopra la sezione dei commenti.
Se si utilizza il tema Twenty Twenty-One, come nel nostro sito dimostrativo, un buon posto dove incollare il codice è il file template-parts/content/content-single.php
dopo l’header e subito dopo <?php the_content();.
Questo visualizza automaticamente i contenuti correlati su qualsiasi articolo di WordPress. È necessario modificare lo stile e l’aspetto degli articoli correlati in corrispondenza del tema aggiungendo CSS personalizzati.
Suggerimento: invece di modificare i file del tema, che potrebbero danneggiare il sito web, si consiglia di utilizzare un plugin per gli snippet di codice come WPCode.
WPCode rende sicura e facile l’aggiunta di codice personalizzato in WordPress. Inoltre, è dotato di opzioni di “inserimento” che consentono di inserire ed eseguire automaticamente gli snippet in punti specifici del sito WordPress, ad esempio dopo un articolo.
Per maggiori dettagli, consultate la nostra guida su come add-on di codice personalizzato in WordPress. Potete anche consultare la nostra recensione dettagliata di WPCode per approfondire chi siamo.
Metodo 2: Come mostrare articoli correlati in WordPress per categoria
Un altro modo per visualizzare i contenuti correlati è quello di elencare gli articoli che appartengono alla stessa categoria. Il vantaggio di questo metodo è che l’elenco degli articoli correlati non sarà quasi mai vuoto.
Come per il metodo 1, è necessario aggiungere uno snippet di codice al template single.php del tema o in un plugin di snippet di codice come WPCode. Per maggiori dettagli, fare riferimento al Metodo 1 e alla nostra guida su come add-on di codice personalizzato in WordPress.
$orig_post = $post;
global $post;
$categories = get_the_category($post->ID);
if ($categories) {
$category_ids = array();
foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
$args=array(
'category__in' => $category_ids,
'post__not_in' => array($post->ID),
'posts_per_page'=> 2, // Number of related posts that will be shown.
'ignore_sticky_posts'=>1
);
$my_query = new wp_query( $args );
if( $my_query->have_posts() ) {
echo '<div id="related_posts"><h3>Related Posts</h3><ul>';
while( $my_query->have_posts() ) {
$my_query->the_post();?>
<li><div class="relatedthumb"><a href="<?php the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><!--?php the_post_thumbnail(); ?--></a></div>
<div class="relatedcontent">
<h3><a href="<?php the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><!--?php the_title(); ?--></a></h3>
<!--?php the_time('M j, Y') ?-->
</div>
</li>
<!--?php }
echo '</ul--></ul></div>';
}
}
$post = $orig_post;
wp_reset_query();
Ora vedrete un elenco di contenuti correlati in fondo a ogni articolo.
Se si desidera modificare lo stile e l’aspetto delle pagine correlate, è necessario aggiungere CSS personalizzato in corrispondenza del tema.
Guide di esperti sui post correlati in WordPress
Volete approfondire la visualizzazione dei post correlati in WordPress? Selezionate questi utili tutorial sui post correlati:
- Come visualizzare le pubblicazioni correlate in WordPress (passo dopo passo)
- Come visualizzare le pubblicazioni correlate dello stesso autore in WordPress
- Come aggiungere post correlati in linea nei post dei blog WordPress
- Come visualizzare le pubblicazioni casuali in WordPress
- Come mostrare le pagine correlate in WordPress
Speriamo che questo tutorial vi abbia aiutato a capire come visualizzare gli articoli correlati con le miniature in WordPress senza plugin. Potreste anche voler imparare a tracciare i visitatori del vostro sito WordPress o consultare il nostro elenco di 24 consigli per velocizzare il vostro sito web.
Se questo articolo vi è piaciuto, iscrivetevi al nostro canale YouTube per le esercitazioni video su WordPress. Potete trovarci anche su Twitter e Facebook.
kabir bairwa
I was trying to correct WordPress-related posts but it was not happening when I saw this code and I used this code in my WordPressfile so now my WordPress-related posts coming properly
WPBeginner Support
Happy to hear our guide could help you!
Admin
Jennifer
Is there a way to have related post based on the post title. I do not have tags and my categories really don’t do the trick since there is no distinction between them.
This would be of great help if you had a code to show related content based on the post title.
aman
I want code to display random posts and pages with thumbnail
WPBeginner Support
You would want to take a look at our guide below:
https://www.wpbeginner.com/wp-tutorials/how-to-display-random-posts-in-wordpress/
Admin
karan4official
Instead of using <? use <?php everywhere
WPBeginner Support
Thank you for your feedback, this article should currently be using the php version everywhere
Admin
Motahar Hossain
Thank you for your nice post.
Here “ignore_sticky_posts” should be used instead of “caller_get_posts”. Because “caller_get_posts” is deprecated.
WPBeginner Support
Thanks for pointing that out, we’ll be sure to look into updating the article
Admin
Frank
Can you direct me as to where to add what categories I would like to limit the related posts to?
WPBeginner Support
This method limits the posts to the category the post is in. To limit the categories you would need to create an if statement to exclude certain categories.
Admin
Greg
Is it possible where there are more than X related posts by category that are related that you can randomise say 3 posts?
WPBeginner Support
While it is possible, it would require adding far more to this, you may want to look into a plugin for that type of customization.
Admin
Akiode obasanjo
No CSS is added
luigi
Hi, is it possible to limit them by date? Show only those of the last year?
Luis
I found a way to make the smaller thumbnails, but it shows them in a column and not horizontally. How can this be modified?
Luis
The script is working well. The only problem I have is that the thumb-nails are very large. Would there be some way to make them smaller?
WPBeginner Support
Hi Luis,
It uses the default post-thumbnail size. You can create a new thumbnail size and then use it in the code like this:
1-click Use in WordPress
Admin
Ana
how to do for create a shortcode for this code, I created the function but I do not know how to return the print to the page.
Musarrof
Why I’m facing this problem. syntax error, unexpected end of file
Please help me.
Mike
Hello,
I’m a beginner in WorldPress.
I’d like to show Related Posts.
In the main menu I have Category A, and in Category A – Subcategories A, B and C. The posts are in Category A, but they can also be present in all 3 Subcategories.
When choosing one of the Related Posts something goes wrong and the posts from the initially chosen Subcategory don’t show correct anymore.
Anthony Reese
Thanks for the tutorial. This was incredibly useful and worked like a charm!
pawan singh
Hi Admin, Very informative article. I like your site because of simplicity and straightforwardness. All articles are to the point but when it comes to sharing the knowledge of code you become too technical. Just ignore the fact that much of the visitors are not coding expert. Wouldn’t it be much better if you just add 2or 3 more lines in your explanation to make it complete and easily understandable to all. Anyway, great article But I want to know which code or plugin is Wpbeginner using?
Ahmad
really helpful, thanks !
Tracy
what really sucks about your articles is you never actually say HOW to do something. It’s all well and good to tell me to put code into my single.php, but as a beginner I don’t know what that is or where to find it. You might want to think about putting this kind of critical information into your articles instead of assuming we know what it means, or that we have surfed every one of your articles to figure it out.
Victor Siyaya
I Agree. I have no idea where to paste this code too.
Rose
Thanks for the great post, very useful. I came across an error in the code so wanted to share in hope it may be useful for others in the future. The error was:
WP_Query was called with an argument that is deprecated since version 3.1.0! “caller_get_posts” is deprecated. Use “ignore_sticky_posts” instead.
So I simply replaced it and it worked fine. I am also using namespacing so I needed to change WP_Query to \WP_Query plus I changed the order of the below:
global $post;
$orig_post = $post;
Thanks again
Rose
sanjeev Kumar
sir
I am using the code of categories working properly but one thing is when on home page same category of 2 or 3 post then the link show balack but i want to show to show category which is next post
Luan
Hi,
Thanks for your post. I added the code in content-single.php and it worked. However, it displays as 1 column not 3 columns like your example. Could you please help me on this? I want my related posts to be displayed in 1 row, 3 columns. Thanks so much.
Claudio
Hello!
The first link on Aditional Sources, is broken.
Thank you by the code.
WPBeginner Support
Hi Claudio,
Thank you for notifying us. We have removed the broken link.
Admin