Categorias
Programação Wordpress

WordPress: exibir artigos relacionados por categoria

Todos sabemos que atualmente o WordPress é o CMS mais flexível do mercado, o que permite que se utilize o mesmo para praticamente qualquer tipo de aplicação web. Por vezes quando desenvolvemos um novo projeto precisamos de algumas funções específica dentro do WordPress, normalmente basta instalar um plugin e ativá-lo, que você terá à sua disposição novas funcionalidades. Mas se recorresse-mos as nossas próprias funções?

Assim sendo, temos por vezes uma tarefa que não é difícil de conseguir, depois de um pouco de pesquisa, testes e alguns ajustes. Conseguimos uns «Code Snippets», ou numa tradução livre será algo como «retalhos de código», que são pedaços de código pré-fabricados e parametrizáveis que podemos inserir em nosso WordPress. É um recurso muito interessante, que pode funcionar muito bem para as nossas necessidades.

É o caso do assunto deste artigo. Pois como eu queria que meus artigos exibissem só artigos relacionados por uma categoria específica, ou seja, todo artigo da categoria ‘x’ só iria exibir artigos desta categoria. Então há que criar uma função e exibir esses últimos artigos relacionados de cada categoria especifica.

WordPress: artigos relacionados

Resultado o seguinte código que basta adiciona-lo no arquivo «function.php» do nosso tema.

<?php
function my_related_articles() {
    if (is_single()) {
    	global $post;
    	$current_post = $post-> ID;
        $number_posts = 5;
    	$categories = get_the_category();
    foreach ($categories as $category) :
    	?>
        <div class="related-articles"><h4>Artigos Relacionados</h4><ul>
    	<?php
    	$posts = get_posts('numberposts=' . $number_posts . '&category='. $category->term_id . '&exclude=' . $current_post);
        foreach($posts as $post) :
    	?>
        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    	<?php endforeach; ?><?php endforeach; ?>
        </ul>
        </div>
    <?php
	}
    	wp_reset_query();
    }
?>

Agora para exibirmos os artigos relacionados vamos ao arquivo «single.php» do nosso tema, adicionar o seguinte:

<?php if(function_exists('my_related_articles')) { my_related_articles(); } ?>

Se queremos deixar o resultado apresentado pela nossa função formatado! Vamos ao arquivo «style.css» do nosso tema, e com um pouco de CSS personalizamos o resultado. Deixei a class CSS («related-articles») usada em branco pois isso vai variar de tema para tema, porque certamente queremos ter como resultado algo que se enquadre no nosso tema. Mas é ela a responsável pela formatação da nossa função:

.related-articles{
 
    }
.related-articles h4 {

    }
.related-articles ul {

    }
.related-articles li {

    }
.related-articles a {

    }
.related-articles a:hover {

    }

O objetivo deste artigo é mostrar a importância em estudar e conhecer o core do WordPress cada vez mais e, assim, evitar plugins que fazem mais do mesmo. Sempre que nos for possível, deveremos dar preferência às funções nativas.

E você gostou da ideia? Já usa funções nativas no WordPress? Comente!

Um abraço e até breve!



2 comentários a “WordPress: exibir artigos relacionados por categoria”

Cara caiu como uma luva este artigo, parabens.
Agora uma outra duvida, se no caso eu fosse querer mostrar so os posts de uma determinada categoria, tipo assim: Estou na pagina “X” e queria que listasse só os posts dessa categoria.

Boas Flaviano…

Não percebo o que pretendes. O script tal como está, já mostra a uma serie de artigos relacionados com a mesma categoria do poste que se esta a ler. Explica melhor, o que pretendes, ok. Um abraço…

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *