WordPress: como exibir posts relacionados sem utilizar plugins

O WordPress pode ser melhorado e também ganhar novos recursos não apenas através da utilização de plugins. Plugins, como sabemos, podem trazer sérias dores de cabeça a administradores e webmasters, algumas vezes, dependendo de como foram desenvolvidos, do ambiente no qual o CMS se encontra instalado, etc.

É bem comum ouvirmos histórias a respeito de sites que foram “derrubados” simplesmente devido à exaustão dos recursos do servidor, e tais problemas muitas vezes são causados por plugins.

Você pode inclusive dar uma olhada neste artigo e descobrir uma ótima maneira de avaliar quais plugins em seu WordPress são os mais problemáticos, qual é o impacto de cada um deles, etc.

WordPress

Bem, você também já deve ter ouvido falar em plugins que exibem posts relacionados em cada post no WordPress. Plugins que exibem uma lista de posts que têm algo a ver com o conteúdo em questão.

Trata-se de uma ótima maneira de manter o visitante por mais tempo no site, além de permitir que visitantes que tenham vindo através dos motores de busca acabem conhecendo mais a respeito do seu trabalho, do seu conteúdo, e acabem, quem sabe, voltando com frequência e até mesmo se inscrevendo para receber suas atualizações (via newsletters, por exempl0).

Posts relacionados também podem contribuir para reduzir sua taxa de rejeição. Além disso, melhorar a “linkagem” interna nunca é demais.

Pois bem, é possível exibir uma lista simples com posts relacionados em seu blog WordPress sem utilizar plugin algum: basta utilizar o código PHP abaixo.

Obs: antes de qualquer coisa, não se esqueça de fazer um backup completo do seu WordPress. Dê uma lida nos artigos abaixo, os quais contam com diversas informações a respeito:

Como deixar o WordPress seguro

Backup e Restore no MySQL utilizando MySQLDump

Compactando e enviando arquivos e backups para servidores Linux remotos

Para uma segurança ainda maior e, obviamente, para facilitar o processo de restauração caso algo dê errado, baixe o arquivo que será modificado através deste tutorial (single.php) para o seu computador. Em caso de problemas e/ou caso seja necessário desfazer as alterações, basta enviar esta cópia de volta para o servidor, sobrepondo o que aí se encontra (e que foi modificado).

Baixando o arquivo

1) Iremos inserir um código customizado em um arquivo do WordPress chamado “single.php”. Cada tema no WordPress conta com seu próprio “single.php”, portanto, verifique qual é o tema ativo no momento (na dashboard do WP, em “Aparência ==> Temas” – ou “Appearance ==> Themes”).

Baixe o arquivo “single.php” do tema que está ativo no momento para seu computador. Você irá encontra-lo, por exemplo, dentro da pasta do WordPress, no seguinte caminho:

“/WordPress/wp-content/themes/nome_do_tema”

Onde “WordPress” é a pasta principal do CMS e “nome_do_tema” é o diretório do tema em uso. Por exemplo:

“/public_html/wp-content/themes/twentyfifteen”

Obs: para baixar e reenviar o arquivo, você também pode utilizar FTP. Utilize o ótimo cliente FileZilla, por exemplo, ou então esta prática extensão para o navegador Mozilla Firefox.

Editando o arquivo

2) Abra o arquivo “single.php” com um editor de textos qualquer (recomendamos o excelente PSPad, mas pode ser o Bloco de Notas do Windows, também);

3) Copie o código abaixo e cole-o no arquivo “single.php”, no local onde deseja que a informação e os links para os posts relacionados sejam exibidos:

<?php
   $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),
      'showposts'=>5, // Quantidade de posts relacionados que deverá ser exibida.
      'caller_get_posts'=>1
      );
      $my_query = new wp_query($args);
      if( $my_query->have_posts() ) {
         echo '<h3>Posts relacionados</h3>';
         while ($my_query->have_posts()) {
            $my_query->the_post();
            ?>
            <li><a href="<?php the_permalink() ?>" rel="bookmark" title="Link permanente para <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
            <?php
            }
         }
   }
?>

4) Salve o arquivo “single.php” e reenvie-o para o servidor, substituindo o que lá se encontra.

Pronto! A partir de agora, posts relacionados serão exibidos em cada um de seus posts no WordPress, ao final da página. O CMS selecionará automaticamente os posts para esta lista, com base nas tags utilizadas.

Esta é uma solução simples, vale lembrar. Algo sem muitas “firulas”, e o resultado será bem parecido com o da imagem abaixo:

WordPress - Posts relacionados

Customizações adicionais no código

Você pode também customizar o código, da maneira que bem entender. Por exemplo, altere a quantidade de posts relacionados que deseja exibir, editando a linha abaixo:

'showposts'=><strong>5</strong>,

Substitua o número “5”, caso desejar, pela quantidade de sua preferência.

O título também pode ser editado à vontade. Basta que você altere o trecho entre as tags <h3> e </h3>, na seguinte linha:

echo '<h3><strong>Posts relacionados</strong></h3>';

Ou seja, altere “Posts relacionados” conforme desejar, lembrando que tal alteração não é obrigatória, é claro.

Da mesma maneira, você pode alterar o atributo “title” dos links, caso desejar:

<li><a href="<?php the_permalink() ?>" rel="bookmark" title="<strong>Link permanente para</strong> <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>

E assim por diante. Você também pode, obviamente, utilizar o atributo “target” para que cada link levando a um post relacionado seja aberto em uma nova janela. Veja:

<li><a href="<?php the_permalink() ?>" <strong>target="_blank"</strong> rel="bookmark" title="Link permanente para <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>

Repare na adição: target=”_blank”.

E assim por diante. Simples e prático, não? Até a próxima!

Sobre Marcos A.T. Silva

Marcos A.T. Silva é empresário na área de TI. É apaixonado por games desde que ganhou seu primeiro Atari 2600. Outras de suas paixões são a leitura e a música. Toca piano desde cedo e também gosta do bom e velho rock ‘n roll. Pode ser encontrado também no XboxPlus.

Queremos saber sua opinião