Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Coppa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Come fare: Articoli correlati con immagini in evidenza in WordPress senza plugin

Volete visualizzare un elenco di articoli correlati sul vostro sito web WordPress e preferite usare il codice piuttosto che un plugin?

Quando i visitatori del vostro blog hanno finito di leggere un articolo di loro interesse, offrire un elenco di articoli 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.

How to: Related Posts with Thumbnails in WordPress Without Plugins

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.

The ‘Tags’ Settings Box in the WordPress Editor

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();.

Related Content by Tags Preview

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.

Related Posts example

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.

WPCode insertion options for custom code snippets

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.

Volete approfondire la visualizzazione dei post correlati in WordPress? Selezionate questi utili tutorial sui post correlati:

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.

Divulgazione: I nostri contenuti sono sostenuti dai lettori. Ciò significa che se cliccate su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come WPBeginner è finanziato , perché è importante e come puoi sostenerci. Ecco il nostro processo editoriale .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Il kit di strumenti WordPress definitivo

Ottenete l'accesso gratuito al nostro kit di strumenti - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Reader Interactions

183 commentiLascia una risposta

  1. Syed Balkhi

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. imranhunzai

    Absolutely awesome! and yeah it helps.

  3. 8MEDIA

    amazing post ,, thanks :D

  4. shaileshtr

    It is good to show related post in wordpress blog without plugiN. iIt will consume less bandwidth and time to load. http://shareitto.com Thanks for your suggestion.

  5. zioneyemedia

    I do have a question on this: I’m wrestling on the code to capture posts from child categories versus parent categories. Any advice?

  6. AmandaLong

    This rocks … Thanks!

  7. dustinporchia

    I’m trying to use the related posts by category and I noticed that you said the code has to come before the comments in the main loop. In my code I want the related posts to come after the comments in the loop. When I do this I notice my disqus comment plugin takes longer to load now. Is that because of an error with the comments or is that normal?

    • dustinporchia

      Nevermind…I just switched to livefyre as this is more of what I’m looking for in a comment system anyways…thanks!

  8. subzerokh

    please

    could someone help a newbie like me customize this script so it’ll display related post in an horizontal way?

    from left to right..

    instead of currently showing it from up to down, vertically…

    • zioneyemedia

      Hey,

      How I did it is I replaced the and codes with my own html and css. The codes create lists for each post, and that is usually in a vertical fashion.

      ——————

      <a href="” rel=”bookmark” title=””> <a href="” rel=”bookmark” title=””>

      ——————

      I replaced the opening with and replaced the closing with as my html tags. Then I write my CSS to fit that specific div class needs on your website. For example, a sample pleft class could look like this:

      .pleft {float:left; padding:2px; margin:10px; width:278px; height:190px;}

      I use the float: selector on my CSS to move posts horizontally, and the margins and padding to give each post spacing within each other. I added in a specific width and height for additional examples.

      Hope this helps.

  9. gcog

    I’ve got related tags for sure, but when I add the code I see nothing. Also, when I add your code to restrict to a custom post type, it gives me an error. I did change the post type to my specific post type.

  10. subzerokh

    @wpbeginner hello

    thanks for your quick answer…

    but i’m a real novice at all you are saying..

    can you please give a litlle exemple?

    for making them horizontal as on your own blog?

    can get in touch by my mail: khiloc at gmail dot com

  11. wpbeginner

    @subzerokh You would have to edit the styling. It is not that hard. Simply wrap each post in a div. Specify a width for that div and then set a float left property. Adjust the margins and such and you have it.

  12. subzerokh

    hello all!! thanks for this wonderfull script!!

    It’s the only thing i found doing exactly what i wanted!!!

    But it’s just showing related post in vertical way (from up to down)

    I would like it to be shown from left to right (horizontally)

    How to do that please??

  13. ConnectIndia

    Error Fatal error: Call to undefined function the_post_thumbnail() in /home/connec92/public_html/wp-content/themes/weekly/single.php on line 59 Can some one help. website http://www.connectindia.co.in

  14. xavpro

    hey,

    great post! maybe you could help me:

    i have a auto thumb if none is defined,

    if ($thumb_array[‘thumb’] == ”) $thumb_array[‘thumb’] = ‘link to your default thumbnail image’;return $thumb_array;

    now my question is how to define a thumb for each category, which will be used if none is defined at post.

  15. dehahs

    works nicely, thanks for sharing!

  16. AdnanAsif

    Hi

    thanks for your great post..

    But any change to get posts by categories but not in ul and li and not in thumb..

    I mean full posts show in related posts..just like show on home page, with readmore link.

    thanks

    waiting your reply..

  17. AdnanAsif

    Hi

    thanks for your great post..

    But any change to get posts by categories but not in ul and li and not in thumb..

    I mean full posts show in related posts..just like show on home page, with readmore link.

    thanks

    waiting your reply..

  18. ibadullah25

    Can I have a CSS For this please

    • Editorial Staff

      The CSS we used was for a client’s site. You can add your own CSS on how you want to display this.

      Admin

  19. titusmagnet

    Thanks..im searching for this kinda Code

  20. jaffa

    This is great, just what I have been looking for. I wonder though, how could I combine the two above and if there are no tags then it displays posts from the same category?

    Trying to figure this out but not getting very far yet

  21. nikbanks

    Thanks for the code it worked but how do I style it. I’d like it to be 4 stories side by side like yours. It is listed one on top of another on my site and not listed like yours.

    • Editorial Staff

      That is CSS. We are not using this code to show related stories. Second, i believe what you are talking about is featured stories on our sidebar. We have written another post about that in our site.

      Admin

  22. Coolguy

    is ther a way to dispay the thumbs in related post without using featured images or post thumbs??
    i.e to use any image used in the post …

    • Editorial Staff

      Yes, you can utilize the fallback techniques shared by other developers which pulls the first image from the post. But we recommend using the WordPress post thumbnails…

      Admin

  23. Hetal

    Thanks for this article. I was wondering if there is a way to auto-tag posts without having to manually enter them.

  24. Sisko

    Great!
    What if I want to display related posts by category without thumbnails?
    Thanks

  25. Terry

    Thank you for posting this tutorial, it helps me a lot.

  26. Adrian

    Hi there…Just wanted to say that I’ve been building my wordpress website from the ground up and this code works perfectly for me using WP 3.1….All I need to do now is style the CSS and get some thumbnails happening for the posts. Thanks for your help with the code.

  27. Patricia

    Hi, is there a way to exclude categories? I have two main categories where all the categories get assigned to. The main categories have sub-categories and I would like to show just related posts from the sub-categories.

    Is this possible, by excluding the id’s of the main categories?

    Thanks for your advice!

    BTW…love the code…and it works great!!!

  28. usman

    I was searching for related post with thumbnails plugins but the code that you paste above, solve my problem.

  29. John

    Just one question, is there a way to only pull tags from the same post type? Maybe using something like ‘post_type=videos’?

    • John

      By the way, got this figured out as well:

      Just add it to the array:

      $args=array(
      ‘category__in’ => $category_ids,
      ‘post__not_in’ => array($post->ID),
      ‘posts_per_page’=> 2, // Number of related posts that will be shown.
      ‘caller_get_posts’=>1,
      ‘post_type’=>’videos’
      );

  30. marion

    Hi,

    Thank you for this tutorial. I’m wondering though if there’s anyway the related products can be randomized? I’ve checked different products in the same category and the same related products were shown.

    Thanks

      • phdean

        Hi,

        I too would like to randomize the posts that display for the categories as, otherwise, they’ll display the same 2 every time. Can you please give me the code to do this?

        Many thanks in advance :)

  31. John

    Nevermind, I got it figured out. Thanks for the post!

      • John

        I didn’t have any other posts with the same tags, i.e. no related posts. Dummy mistake.

  32. John

    I copied this code and put it in my single.php without changing a thing and nothing gets outputted. Anything wrong with my code? pastebin.com/kg0SkrAg

  33. James

    This doesn’t bring up a thumbnail — there isn’t even a call for an image int eh code. I don’t see how anyone can get this to work.

    • Editorial Staff

      The code for the image is: the_post_thumbnail(); << This is not static html where you will see img src code. The function calls in the database to search for a featured image aka thumbnail that is attached to each article. If found, it will output the image. Now if you do not have post thumbnails enabled in your theme, then you need to add it first:

      https://www.wpbeginner.com/wp-themes/how-to-add-post-thumbnails-in-wordpress/

      The article clearly stated that in the Note: section. You should consider reading it thoroughly.

      Admin

  34. Roberto Silva

    hey man, I love your blog!

    I have a question?

    Can you do the same trick but ” BY Author” ?

    showing the latest posts by author?

    you will save my life :-)

    Btw thanks for this website!

      • Roberto Silva

        yessss, thanks…

        It will be a great article.

        bacause “latest posts by author without plugin” is hard to find on internet.

        you are the best.

  35. Quinn

    Thanks for this code! I’ve given it a try and it works somewhat.

    I can get it to give a listing of the related articles, a huge benefit.

    But I can’t seem to get any images to show up.

    The articles have images if this code scrapes.

    I also went in and created images for each post with the custom tag “relatedthumb”. But alas, still no images.

    Is there something else I need to do?

    Many thanks in advance!

    Quinn

    • Editorial Staff

      This trick is using the default WordPress thumbnails which was added in WP 2.9. If you have an image attached as that thumbnail, then it will pull it.

      Admin

  36. Anthony

    Is it possible to exclude a category from this module ?

    Thanks a lot,
    Anthony

  37. Madhav Tripathi

    Hi, thanks for this good tutorial, currently I am using Thesis theme, so I want to know if there is a way in thesis theme implement this .php code.

  38. Sophie

    I’m trying to modify his code in order to use it with categories within a custom post type. Can anyone help? I’m fairly new to php.

    Thanks!

  39. rulethenation

    ok i got it to work, is there anyway to put a default pic if a thumbnail is unavailable

    • Editorial Staff

      Yes, you can use the if paramter to check if there are plugins… if not then you can display a default image.

      Admin

        • Quickbrown

          In order to use default images when no post thumbnail available, replace with <?php if (has_post_thumbnail()) {the_post_thumbnail()} else {echo '’;} ?>
          Then put a default-image.jpg under your themes’ image folder.

  40. rulethenation

    i cant get this to work, it just messes up my whole layout near the comments, am i missing something? i had to take it off my site

  41. Heather Hill

    HI!
    Thanks for this information! This is exactly what I was looking for.
    Is there a way to add an excerpt to this, along with the photo?

    Thanks again for your help!

  42. Jez

    Thanks for this, exactly what I was looking for! I love how straight to the point your articles are, no confusion.

  43. Omer Greenwald

    Thanks for sharing. I’m using this code for a while now but it has a problem: when adding tags to a post, WP sorts them alphabetically regardless of the priority I added them. So this code displays related posts matching the first tag only which are less relevant sometimes.
    Maybe you have an idea how to prevent this auto sorting of tags by WordPress or any other solution?

  44. Doug C.

    All that first code did was put two instances of the same post on the page. It didn’t show any related anything.

    • Editorial Staff

      Doug please contact us using the form with a live link example, and we can help. We know this code is working because a few of our client’s site is using it.

      Admin

  45. Liam

    Great tutorial. Would someone mind showing me a working single.php with this code?

    I’m still learning php.

    Unfortunately
    Parse error: syntax error, unexpected T_ENDIF in C:\xampplite\htdocs\mock\wp-content\themes\scwd\single.php on line 76

    • Editorial Staff

      Here is a working example Flowtown Blog.

      Note that this code is so it will work inside the loop. Where are you trying to post this? If it is outside the loop then just add the end if code endif; << like that.

      Admin

        • Editorial Staff

          Don’t know what could be going wrong. After the clearfloat class it should work fine. That is how we put it in flowtown and it is working perfectly.

        • Liam

          I will finish the theme and try it on a live site instead of xamp. I will let you know.

  46. Shahab

    Nice tutorial!
    Right now i am using YARPP but would love to give this a try!
    Thanks

  47. Vivek @ InfoEduTech

    Thanks for this article. i am searching for lot of time to show the thumbnails with my article i am unable to perform this. i have tried many wordpress plugin but couldn’t done this. hope this might help me out

Lascia una risposta

Grazie per aver scelto di lasciare un commento. Tenga presente che tutti i commenti sono moderati in base alle nostre politica dei commenti e il suo indirizzo e-mail NON sarà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avremo una conversazione personale e significativa.