Posts recentes em qualquer post ou página via shortcode

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

Banner randomico huuguu

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.

Banner randomico huuguu

Array
Sobre Calixto

CalixtoOlá! Sou Hugo Calixto, Programador WEB e Profissional de SEO desde 2017.

Sou natural do Rio de Janeiro e vivo em São Paulo e Madrid.

O que faço: Desenvolvo Sites Personalizados (com ou sem Wordpress), Administro Servidores e sou Especialista em SEO (otimização de sites para mecanismos de busca).

E o que mais gosto no meu trabalho é : "Ajudar as pessoas" e "Experimentar de tudo" e "usar o que aprendo para poder fazer coisas novas".

Ah! Se precisar de ajuda, não excite, chama o Hugo Calixto.