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

182 commentiLascia una risposta

  1. 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

  2. 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.

  3. aman

    I want code to display random posts and pages with thumbnail

  4. 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

  5. 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

  6. 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

  7. 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

  8. Akiode obasanjo

    No CSS is added

  9. luigi

    Hi, is it possible to limit them by date? Show only those of the last year?

  10. 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?

  11. 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?

  12. 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.

  13. Musarrof

    Why I’m facing this problem. syntax error, unexpected end of file
    Please help me.

  14. 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.

  15. Anthony Reese

    Thanks for the tutorial. This was incredibly useful and worked like a charm!

  16. 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?

  17. Ahmad

    really helpful, thanks !

  18. 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.

  19. 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

  20. 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

  21. 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.

  22. Claudio

    Hello!
    The first link on Aditional Sources, is broken.
    Thank you by the code.

  23. Abhijit Badgujar

    Hi,

    I have a ‘Related post’ option from my wordpress theme and i am already using it. I have displayed 6 posts after the content. The problem is, it only shows 3 related posts and next three can be seen when you slide it horizontally. I don’t want that option, i want the site to display all 6 posts outright. Can you tell me how to do it?

  24. Gyuricza Laszlo

    Hello,

    Your guidance was amazing but how can i exclude a specific category from the related posts in order to not display it?

    Thank you, in advance!
    Sincerely,
    LAszlo Gyuricza

  25. Tuta

    Hi Syed. How do I style it?

    • WPBeginner Support

      Hi Tuta,

      You can use #relatedposts .relatedthumb and .relatedcontent selectors in your CSS to style it.

      Admin

  26. Dev Rathore

    How to Display All Post List in one Page

  27. Suraz

    How to Show Related Post It In two Columns Like here in WPBeginner??

  28. Tom

    Nice solution but not definitive for my exigence. Infact the mean problem is that this code sort the related posts from the most recent in the same category or tags. The result is that when you browse inside a category/tag you’ll always display the same few last posts, limiting hardly the older posts of your site. That’s a right conclusion? Please if you tried it share your opinion!

    • Joy

      1. After ‘caller_get_posts’=>1 put a comma(,)
      2. Hit enter button [next line]
      3. Add ‘orderby’=>’rand’
      You are done. Now related posts will be shown randomly. Thank you.

  29. Zane DeVault

    This code works great. I was wondering if you could explain what this part of the code does?

    $orig_post = $post;
    global $post;

    $post = $orig_post;

    I think I have a grasp on what the rest is doing, but this is throwing me for a loop.

    Thanks for all your great content!

  30. may nghe len

    Let me ask the Code Related Posts by Category posted in public places. thank you

  31. atiq

    in Twentyfifteen default theme where should i insert this code in single.php file? If i inserted above the endwhile; it shows syntax error, unexpected ‘endwhile’ and if i inserted below the endwhile; but above the endif; it shows syntax error, unexpected ‘endif’

    Any solution for this?

    Thanks

    • Mohammad Kazemi

      You must use ‘<?php' not '<?'

  32. atiq

    in Twentyfifteen default theme where should i insert this code in single.php file? If i inserted above the enwhile; it shows syntax error, unexpected ‘endwhile’ and if i inserted below the enwwile but above the endif; it shows syntax error, unexpected ‘endif’

    Any solution for this?

    Thanks

  33. Marcel Tripoux

    Hi! Great post!

    Is there a way to combine both option, in order to call related tags only in the current category ?

  34. Bambang

    my single.php layout :

    //the_content bla bla bla code here

    //Copy paste Related Posts by Tags code here

    //comments_template bla bla bla code here

    ——————————-
    the result i got error :
    Parse error: syntax error, unexpected ‘endwhile’ (T_ENDWHILE) in …
    ——————————-
    after i change ” <? } " to " <?php } " it worked,

    just sugestion, maybe it better if you put complete php open tag
    thanks :)

  35. Alex

    Works perfect. How to exclude the definite tag from Related Posts by Tags? I mean how to change the code when algorithm would find other posts with any one of the tag (except tag 595 for instance) that the current post has and will list them.

  36. Mohammad

    Thanks for the great code
    It works great but you didn’t address any css codes for a more beautiful look for this section. Can you please do this? I’m newbie to coding and I tried some codes but they didn’t work. In your codes there is:
    echo ‘Related Posts’;
    but in some similar codes I found in other resources there is:

    and in css some codes like this:
    .relatedposts {
    font-size: 12px;
    width: 640px;
    }
    .relatedposts h3 {
    font-size: 20px;
    margin: 0 0 5px;
    }
    will get that a nice look but it didn’t work with your code.
    Thanks

  37. Muthu

    Dear collegue this is an error am getting while pasting this code on single.php file.kindly tell me exacctly where should i paste this code.

    Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\beingusefull\wp-content\themes\TechPlus\single.php on line 78

  38. WPBeginner Staff

    That will depend on your individual theme and template. You need to add the conditional tag after the WordPress loop begins. After this line:
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    • Jenny

      I got that error too and this is my updated code:
      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.
      ‘caller_get_posts’=>1
      );
      $my_query = new wp_query( $args );
      if( $my_query->have_posts() ) { ?>
      Related Posts
      have_posts() ) : $my_query->the_post(); ?>
      <a href="” rel=”bookmark” title=””>

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

  39. wiyono

    When the post i share on facebook, the thumbnail getting from related post, can i get the thumbnail from the main page? thx

    • Lacey Tech Solutions

      If you’re using Yoast’s WordPress SEO plugin you can specify the thumbnail URL under the social tab for the post. If the social tab isn’t shown then you need to click the Yoast SEO link in the WordPress admin menu then click “Social”. In the social page tick the option for, “Add Open Graph meta data” and save. Go back into your post and you can specify the thumbnail image you want to use when the post is shared. If you don’t implicitly set the post image the user has the option of selecting any image that appears on the page, which is why your recent post images are being pulled in when you share the article link.

  40. Gretchen Louise

    Any thoughts on how much of a database/server load this would be on a large self-hosted site? Looking for a related posts alternative now that #nRelate is no longer available.

    • vipul

      can you tell where and how?

  41. Rachael

    This doesn’t work in the single.php for me, b/c related posts show up at the very bottom of the page. It works with loop.php but then they also show up on the homepage – any ideas on a fix so it just shows in single posts and not the homepage?

  42. kate // always craving //

    Hi, I must be the only one who is not doing this correctly. My theme supports featured images, I added this code before the comments within the single.php file. Any tips on exactly where to input in the code?

  43. Keyko Sakura

    All the codes I find never work. Or they don’t change anything on my page or they display an error message. I don’t know what else to do!

  44. Mason Coulter

    Is there a way to add pagination to the related posts query? I cant seem to get pagination to work on a secondary query within single.php. Thanks!

  45. Tom K.

    Hello , i want to ask , is there way to make , that related posts would be by category and tags in one place? Thanks.

  46. Jonas

    My thumbnails are too big, help. How can you limit the related posts thumbnails?

  47. Jonathan

    Is there a way to choose a single category (let’s call it Brands) and then have it display related posts only affiliated with the child categories under Brands? So, the hierarchy for the cats would be Brands > JCPenny. I want to only show related posts for JCPenny. But, that child category could be different per post. So if a post uses a different child category it’ll show related posts for that child cat. Can this code be modified to handle that somehow?

    • Jonathan

      OH! I think I’ve got it. I just added ‘parent’ => ‘the cat id number’, to the args and I think that did it.

    • Jonathan

      wait… no, that didn’t work :(

  48. Miro

    Hi, thanks for the code, but instead of grabbing the featured image as a thumb, can i grab instead the first image in my posts? Thanks

    • WPBeginner Support

      This sounds like a nice post idea, we will cover it soon in a new article. Thanks for the feedback.

      Admin

      • Miro

        It would be great if you guys would make a post on it. Thank you very much and will be waiting. Hope that you can kindly post here a notification once you made the post so we know.

  49. Caleb

    Great post thanks! I run a website that uses WP more as a CMS with a large number of pages rather than posts. Can I do this with as related pages instead, so that it’s grabbing related pages and not posts? If so how do I go about doing this.

    Thanks for the help :)

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.