Como Exibir as Últimas Postagens Fixas no WordPress

O WordPress tem um recurso muito legal chamado posts fixos. Pense em posts fixos como posts em destaque para o seu blog. Quando você marca um post como fixo, ele aparece acima dos seus novos posts, mas apenas se o seu tema permitir. Neste tutorial, mostraremos como exibir os posts fixos mais recentes no WordPress.

Demonstração de Posts Fixos Mais Recentes

Observação: Este é um tutorial de nível intermediário e requer conhecimento básico de HTML/CSS + conhecimento de temas do WordPress.

Tutorial em Vídeo

Inscreva-se no WPBeginner

Se você não gostar do vídeo ou precisar de mais instruções, continue lendo.

A primeira coisa que você precisa fazer é copiar e colar este trecho de código no arquivo functions.php do seu tema ou em um plugin específico do site.

function wpb_latest_sticky() { 

/* Get all sticky posts */
$sticky = get_option( 'sticky_posts' );

/* Sort the stickies with the newest ones at the top */
rsort( $sticky );

/* Get the 5 newest stickies (change 5 for a different number) */
$sticky = array_slice( $sticky, 0, 5 );

/* Query sticky posts */
$the_query = new WP_Query( array( 'post__in' => $sticky, 'ignore_sticky_posts' => 1 ) );
// The Loop
if ( $the_query->have_posts() ) {
	$return .= '<ul>';
	while ( $the_query->have_posts() ) {
		$the_query->the_post();
		$return .= '<li><a href="' .get_permalink(). '" title="'  . get_the_title() . '">' . get_the_title() . '</a><br />' . get_the_excerpt(). '</li>';
		
	}
	$return .= '</ul>';
	
} else {
	// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

return $return; 

} 
add_shortcode('latest_stickies', 'wpb_latest_sticky');

O código acima consulta o banco de dados do WordPress para recuperar os 5 posts fixos mais recentes. Em seguida, ele exibe o título de cada post fixo com um link em formato de lista. Envolvemos tudo isso em uma função e criamos um shortcode.

Agora, para exibir seus posts fixos mais recentes, você pode usar o shortcode [latest_stickies] em qualquer post, página ou até mesmo em um widget de texto do WordPress.

Se você gostaria de usar shortcodes dentro de um widget de texto, então você precisará adicionar esta linha extra de código no functions.php do seu tema ou no plugin específico do site.

add_filter('widget_text', 'do_shortcode');

Este trecho e função podem ser muito bem usados em um slider em destaque, ou qualquer outro recurso avançado que você gostaria de exibir em seu site. Este trecho é voltado principalmente para um site WordPress que possui uma página inicial personalizada ou um visual estilo revista.

É isso, esperamos que este artigo tenha ajudado você a exibir os posts fixados mais recentes em seu blog WordPress. Você também pode conferir nosso tutorial sobre como adicionar uma data de expiração a posts fixados no WordPress.

Se você gostou deste artigo, por favor, inscreva-se em nosso Canal do YouTube para tutoriais em vídeo do WordPress. Você também pode nos encontrar no Twitter e Google+.

Aviso: Nosso conteúdo é apoiado pelos leitores. Isso significa que, se você clicar em alguns de nossos links, poderemos ganhar uma comissão. Veja como o WPBeginner é financiado, por que isso importa e como você pode nos apoiar. Aqui está nosso processo editorial.

O Kit de Ferramentas Definitivo para WordPress

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

Interações do Leitor

8 CommentsLeave a Reply

  1. esforços muito informativos feitos por você, este código funciona perfeitamente,
    tenho uma pergunta: tenho várias categorias e subcategorias, então eu só quero fazer um post fixo para cada categoria separadamente, e exibido na página de lista de categorias onde todas as postagens da categoria específica são listadas, como (Categoria Esportes -> um post fixo – Categoria Receitas de Culinária -> um post fixo) etc

  2. Obrigado por me colocar no caminho certo!!
    O código funciona muito bem em fazer o Título aparecer onde o shortcode é colado.

    No entanto, eu estava tentando encontrar um método para exibir o post inteiro (todo o conteúdo, em vez de apenas um título ou até mesmo um trecho) em uma página específica.

    Decidi brincar com seu código acima para tentar alcançar isso e finalmente consegui…
    Embora o título seja exibido no mesmo tamanho do texto do parágrafo, tenho certeza de que posso consertar isso.

    Here’s what I changed…please let me know if you think there’s something I should reconsider lest the whole world explodes ;)

    Eu simplesmente mudei seu texto get_the_excerpt() para get_the_content() e isso puxou com sucesso o post inteiro para essa página.
    Para remover a indentação com marcadores, removi as tags " " " ", mas tive que deixar os apóstrofos no lugar, caso contrário, a página não carregaria.
    Então, em essência, onde " " ou " " estava antes, agora há apenas " " e assim por diante.

    Foi tudo o que mudei e funciona muito bem para mim... Há 2 problemas que notei: 1: Às vezes, ele carrega a maior parte da postagem, mas nem sempre até o final, especialmente se a postagem for editada depois... alguém tem sugestões para garantir que isso não aconteça? 2: Eu adoraria se a imagem destacada também aparecesse, isso a tornaria a solução flexível definitiva! Alguma ideia sobre isso?

    Obrigado novamente pelo conselho!

    Espero que o que expliquei faça sentido para quem quiser alcançar o mesmo que eu buscava.

  3. Olá

    Obrigado pelo seu código. No entanto, estou tentando alcançar algo e tenho 2 problemas.

    Quero exibir apenas uma postagem fixa na minha página inicial e apenas o vídeo do YouTube presente no conteúdo.

    Na verdade, eu exibo o título e todo o conteúdo de uma postagem (incluindo textos, imagens e vídeos). O segundo problema é que ele exibe o YouTube como um link e não incorpora o vídeo diretamente na minha página inicial.

    Obrigado pela sua ajuda

  4. Olá,

    Eu testei o código, ele funciona bem quando pelo menos 1 post foi atribuído como post fixo, caso contrário, quando nenhum dos posts é atribuído como fixo, ele exibirá os 5 posts mais recentes.

    Assim seria a condição para exibir apenas posts fixos, se não houver posts fixos atribuídos, então não deve exibir nada.

    Agradeço desde já

  5. ‘caller_get_posts’ foi substituído por ‘ignore_sticky_posts’ desde a v3.1, então acho importante alterar seu código para refletir isso.
    Além disso, a) $post->ID não é necessário nesta instância de get_permalink() pois você configurou os dados da postagem chamando $the_query->the_post(), e se por algum motivo você ainda quiser incluir $post->ID, você deve torná-lo global, ou seja, global $post;

Deixar uma resposta

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