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

Como fazer: Posts relacionados com miniaturas no WordPress sem plug-ins

Deseja exibir uma lista de posts relacionados em seu site WordPress e prefere usar código em vez de um plug-in?

Quando os visitantes do seu blog terminarem de ler um artigo de seu interesse, oferecer uma lista de publicações relacionadas os manterá envolvidos e os ajudará a encontrar novos conteúdos para ler.

Neste artigo, mostraremos como exibir posts relacionados no WordPress usando código, sem necessidade de plugin.

How to: Related Posts with Thumbnails in WordPress Without Plugins

Por que mostrar posts relacionados no WordPress?

Quando o seu blog WordPress começa a crescer, pode ficar mais difícil para os usuários encontrarem outras publicações sobre o mesmo tópico.

Exibir uma lista de conteúdo relacionado no final de cada publicação de blog é uma ótima maneira de manter os visitantes em seu site e aumentar as visualizações de página. Isso também ajuda a melhorar a visibilidade de suas páginas mais importantes, exibindo seu melhor conteúdo onde as pessoas possam encontrá-lo facilmente.

Se você não estiver familiarizado com códigos, será mais simples escolher um dos muitos plug-ins de posts relacionados do WordPress que podem exibir posts relacionados sem código.

Mas, se você já se perguntou se pode exibir posts relacionados sem usar um plug-in, compartilharemos dois algoritmos diferentes que você pode usar para gerar posts relacionados com miniaturas usando apenas o código:

Observação: se você quiser mostrar uma miniatura com cada publicação relacionada, certifique-se de adicionar primeiro uma imagem em destaque a essas publicações.

Método 1: Como mostrar posts relacionados no WordPress por tags

Uma maneira eficiente de localizar conteúdo relacionado é procurar outras publicações que compartilhem as mesmas tags. As tags costumam ser usadas para focar nos detalhes específicos contidos em uma publicação.

Com isso em mente, talvez você queira adicionar algumas tags comuns às postagens que deseja relacionar umas às outras. Você pode inseri-las na caixa “Tags” no editor do WordPress.

The ‘Tags’ Settings Box in the WordPress Editor

Depois de adicionar tags às suas postagens, a próxima coisa a fazer é adicionar o seguinte trecho de código ao modelo single.php do seu tema.

Se precisar de ajuda para adicionar código ao seu site, consulte nosso guia sobre como colar trechos da Web no 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();

Esse código procura as tags associadas a uma página e, em seguida, executa uma consulta ao banco de dados para buscar páginas com tags semelhantes.

Onde você deve colocar o código? Isso depende do seu tema, mas, na maioria dos casos, você deve conseguir colar o código no modelo single.php do seu tema após a publicação principal e logo acima da seção de comentários.

Se estiver usando o tema Twenty Twenty-One, como em nosso site de demonstração, um bom lugar para colar o código é no arquivo template-parts/content/content-single.php após o cabeçalho e logo após <?php the_content();.

Related Content by Tags Preview

Isso exibirá automaticamente o conteúdo relacionado em qualquer post do WordPress. Você precisará alterar o estilo e a aparência das postagens relacionadas para que correspondam ao seu tema, adicionando CSS personalizado.

Related Posts example

Dica: em vez de editar os arquivos do tema, o que poderia danificar seu site, recomendamos o uso de um plug-in de trechos de código como o WPCode.

O WPCode torna seguro e fácil adicionar códigos personalizados no WordPress. Além disso, ele vem com opções de “Inserção” que permitem inserir e executar automaticamente trechos em locais específicos do seu site WordPress, como após uma postagem.

WPCode insertion options for custom code snippets

Para obter mais detalhes, consulte nosso guia sobre como adicionar código personalizado no WordPress. Você também pode conferir nossa análise detalhada do WPCode para saber mais sobre o plugin.

Método 2: Como mostrar posts relacionados no WordPress por categoria

Outra maneira de exibir conteúdo relacionado é listar as postagens que estão na mesma categoria. A vantagem desse método é que a lista de posts relacionados quase nunca estará em branco.

Como no Método 1, você precisa adicionar um trecho de código ao modelo single.php do seu tema ou em um plug-in de trechos de código como o WPCode. Para obter mais detalhes, consulte o Método 1 e nosso guia sobre como adicionar código personalizado no 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();

Agora você verá uma lista de conteúdo relacionado na parte inferior de cada publicação.

Se quiser alterar o estilo e a aparência das páginas relacionadas, você precisará adicionar CSS personalizado para corresponder ao seu tema.

Deseja saber mais sobre a exibição de postagens relacionadas no WordPress? Confira estes tutoriais úteis sobre postagens relacionadas:

Esperamos que este tutorial tenha ajudado você a aprender como exibir posts relacionados com miniaturas no WordPress sem plug-ins. Você também pode querer saber como rastrear os visitantes do seu site WordPress ou conferir nossa lista de 24 dicas para acelerar seu site.

Se você gostou deste artigo, inscreva-se em nosso canal do YouTube para receber tutoriais em vídeo sobre o WordPress. Você também pode nos encontrar no Twitter e no Facebook.

Divulgação: Nosso conteúdo é apoiado pelo leitor. Isso significa que, se você clicar em alguns de nossos links, poderemos receber uma comissão. Veja como o WPBeginner é financiado, por que isso é importante e como você pode nos apoiar. Aqui está nosso processo editorial.

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.

O kit de ferramentas definitivo WordPress

Obtenha acesso GRATUITO ao nosso kit de ferramentas - uma coleção de produtos e recursos relacionados ao WordPress que todo profissional deve ter!

Reader Interactions

182 ComentáriosDeixe uma resposta

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

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

    • WPBeginner Support

      Hi Tuta,

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

      Administrador

  3. Dev Rathore

    How to Display All Post List in one Page

  4. Suraz

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

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

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

  7. may nghe len

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

  8. 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 '<?'

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

  10. Marcel Tripoux

    Hi! Great post!

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

  11. 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 :)

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

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

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

  15. 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=””>

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

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

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

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

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

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

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

  23. Jonas

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

  24. 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 :(

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

      Administrador

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

  26. 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 :)

  27. Muhammad Hadi Qureshi

    Really thanks for this helping post

  28. Phil Simon

    This. Is. Awesome. WPEngine understandably doesn’t allow for related posts plugins, save for a few exceptions. I tried a few and really didn’t like them. I threw this code into single.php and voila! Thank you.

  29. Lucas Bishop

    This is good, but i wanna do it with title of post rather then tags or category. Any suggestions for it, syed!!

  30. Alexandros

    Hi friends little problem it appears to me: “Parse error: syntax error, unexpected ‘endwhile’ (T_ENDWHILE) in C: \ xampp \ htdocs \ z1 \ wp-content \ themes \ mytheme \ single.php on line 65” find
    But what ..? Thanks

  31. Britt

    Love this piece of code, use it on the regular! One question: Is there a way to exclude some tags in the code?

  32. Rakesh

    Take a look at the category related posts code. It wont work unless you add some php , the three letters before getting started with echo. Add php and it will not be ignored. In either case, it is ignored and wordpress cries every time with an error note. Thanks for the code by the way and it made my work a lot easier. Thanks a ton for that and do adjust it ,

  33. Dennis

    Also, I have one more question,

    What if I wanted to display a certain post containing a certain tag to all posts, how would I do this?

  34. Dennis

    Hi, this is so awesome! Now I can just get rid of my related post plugin, so thanks A LOT for that!

    One question I have is, how can I display the related post in 2 column?

    Once again, this has been such a BIG help for me!

  35. Christina

    Hi!! Thanks for your helpful information for those, like myself, who have no idea of any coding, but still want to have a blog!! I have just incorporated your ‘relate posts by tags” code to my single post file. It works except for the pfotos. They dont show at all and the titles of my related posts are shown the one under the other, like a list. What have I done wrong?? Thanks in advance for your answer!!

  36. TheFran

    Hi,

    This code is amazing! Thank you so much. Is there a way I can make the code show related posts from ANOTHER SITE? So it searches the posts from another site that I show below the post as a related post on my site?

    Thanks!

    • Editorial Staff

      Not using this snippet. You would have to create something more complex for that.

      Administrador

  37. Carlos

    Hi,
    I’m using a theme that works with custom posts. I wonder if I try your code, which part should I edit to display just those custom posts instead of the regular posts.

    Thanks

  38. Miz.Chellie

    Hello – yours is the first tutorial that I found that works but I would like the list vertical. Can you give an example of the CSS for that?

  39. Livius

    Hey,

    I cannot, find the single.php where I have to insert this code.

    The problem is that I am using Balance Theme + Genesis. So in the genesis, I can find the Single.php, but it says to “Not Edit Under Any Circumstances”, and I have actually pasted the code in there, but it made my site to stop opening pages at all.
    And in the Child Balance Theme, there is no Single.php ….

    Any suggestions?

    • Editorial Staff

      Yes, don’t edit the framework file. You would have to familiarize yourself with Genesis hooks and filters. Then add the code in one of the loop hooks for single page using your functions.php file. Unfortunately, due to the amount of frameworks out there, we can’t possibly cover our tips for all frameworks.

      Administrador

    • Mark

      Use Genesis Hooks then put the code in there.

  40. peter

    Hello is there any way to change the thumbnail size? i get only one related post and its thumbnail is huge

  41. Dean

    Hi! this is very useful coding. Is it possible to use this for making a custom page that will show all the posts, like a sitemap but with thumbnails? Something like this:

    Category 1
    —– related posts code (all posts from that category) ——

    Category 2
    —– related posts code (all posts from that category) ——

    etc. It would make a great showcase for categories with few posts. Thank you for reading and help!

  42. Nuno Marques

    Hey,

    very handy your “Related Posts by Category”.

    Sometimes I believe it’s better to have add a raw code rather than use a plugin doesn’t is so expansible…

    Thank you!

  43. Silverbadger

    Is it possible to display the posts horizontal instead of vertical?

    Thanks :)

  44. Paul

    Thank you thank you thank you!! A simple copy paste bit of code that just gets on with it and works – does exactly what it says. This is exactly what I was looking for :)

  45. Editorial Staff

    Yes, you can use post thumbnails by itself. Not sure why you would want the related feature…

    Administrador

  46. Raheek

    Thanks for the helpful article. I now just added elated posts by using this code.

  47. Ferdy

    What if there are no related posts. can it be coded such that it falls back to category related.

  48. tobalseverin

    hi!

    i need some help…

    How i can filter.. the category, but if i have parent and child categories and only i show the child post. ex:

    – product (all product, this is the parent) (id 104)

    – KindOfProducts (subcategory, this is the child) (id 109)

    – KindOfProductsTwo (subcategory, this is the child) (id 110)

    in products have all post but just need show related from the child: KindOfProducts.

    i try whit this:

    $args = array(

    ‘category__in’ => $category_ids,

    ‘category__not_in’ => 104,

    ‘post__not_in’ => array($post->ID),

    ‘orderby’=> ‘rand’,

    ‘showposts’ => 100,

    ‘ignore_sticky_posts’ => 1

    );

    but dont showme nothing…

    and i try whit this other one:

    $args = array(

    ‘category__in’ => $category_ids,

    ‘child_of’ => 104,

    ‘post__not_in’ => array($post->ID),

    ‘orderby’=> ‘rand’,

    ‘showposts’ => 100,

    ‘ignore_sticky_posts’ => 1

    );

    and nothing

    help? tnks!

Deixe uma resposta

Obrigado por deixar um comentário. Lembre-se de que todos os comentários são moderados de acordo com nossos política de comentários, e seu endereço de e-mail NÃO será publicado. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.