Posts recentes em qualquer post ou página via shortcode
O WordPress fornece um widget que pode ser usado para exibir posts recentes em qualquer barra lateral ou local com widgets do nosso tema.
Da mesma forma, muitos temas do WordPress já fornecem algum tipo de funcionalidade de “posts recentes” (como meu tema, o huuguu compacto da plataforma huuguu.com.br), para que os usuários possam exibir em locais específicos em torno do tema.
Essa funcionalidade é ótima e muito útil para exibir posts recentes em praticamente qualquer lugar do seu tema. O problema é que esses métodos não funcionam para exibir posts recentes em posts, páginas e qualquer outro tipo de postagem personalizada. Como por exemplo, dentro do conteúdo da postagem.
Abaixo apresento meu snippet de posts recentes para ser usado via shortcode.
//recent posts shortcode
function hugocalixto_recent_posts_shortcode($atts, $content = null) {
global $post;
extract(shortcode_atts(array(
'cat' => '',
'num' => '5',
'order' => 'DESC',
'orderby' => 'post_date',
), $atts));
$args = array(
'cat' => $cat,
'posts_per_page' => $num,
'order' => $order,
'orderby' => $orderby,
);
$output = '';
$posts = get_posts($args);
foreach($posts as $post) {
setup_postdata($post);
$output .= '<li><a href="'. get_the_permalink() .'">'. get_the_title() .'</a></li>';
}
wp_reset_postdata();
return '<ul>'. $output .'</ul>';
}
add_shortcode('hugocalixto_recent_posts', 'hugocalixto_recent_posts_shortcode');
Como usar o shortcode de posts recentes
Em suma, para usar o shortcode adicione o seguinte código a qualquer post ou página do WP:
[hugocalixto_recent_posts]
Também poderá usar o shortcode alterando o número de posts e definindo uma categoria, adicione o seguinte código a qualquer post ou página do WP:
[hugocalixto_recent_posts num="5" cat="7"]
5 é o número de posts e 7 é o ID da categoria
Ou, use-o alterando o número de postagens e alterando a ordenação e o tipo de ordenação, adicione o seguinte a qualquer postagem ou página do WP:
[hugocalixto_recent_posts num="10" order="desc" orderby="post_date"]
10 é o número de posts, ordem você pode usar ASC ou DESC e orderby para conhecer as outras opções além de POST_DATE você deve acessar:
https://developer.wordpress.org/reference/classes/wp_query/#order-orderby-parameters
Conclusão
Viu o quanto é fácil?
Enfim, através deste snippet podemos implementar essa funcionalidade em um site ou loja virtual e utilizá-la em páginas e até posts apenas inserindo o shortcode.
Importante! Não esqueça de inserir a snippet no functions.php do seu “tema filho” ou em um “plugin de função“. Se inseri-lo em seu tema principal, não apenas corre o risco de perdê-lo na próxima atualização do tema, como também suas páginas que foram instaladas o shortcode irão parar de exibir a lista de posts recentes.
Se você gostou e aproveitou o que leu, compartilhe, comente ou entre em contato comigo, terei o prazer de trocar uma ideia com você e responder suas dúvidas.