Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Copa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Como exibir os últimos posts fixos no WordPress

O WordPress tem um recurso muito legal chamado sticky posts. Pense nas postagens fixas como postagens em destaque em seu blog. Quando você marca uma postagem como fixa, ela é exibida acima das novas postagens, mas somente se o tema permitir isso. Neste tutorial, mostraremos como exibir as últimas postagens fixas no WordPress.

Latest Sticky Posts Demo

Observação: este é um tutorial de nível intermediário e requer conhecimentos básicos de HTML/CSS e de temas do WordPress.

Tutorial em vídeo

Subscribe to 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 esse trecho de código no arquivo functions.php do seu tema ou em um plug-in 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 as 5 últimas postagens fixas. Em seguida, ele exibe o título de cada sticky post com um link em um formato de lista. Envolvemos tudo isso em uma função e criamos um shortcode.

Agora, para exibir suas últimas postagens fixas, você pode usar o shortcode [latest_stickies] em qualquer postagem, página ou até mesmo em um widget de texto do WordPress.

Se quiser usar códigos de acesso dentro de um widget de texto, será necessário adicionar essa linha extra de código no functions.php do seu tema ou no plugin específico do site.

add_filter('widget_text', 'do_shortcode');

Esse snippet e essa função podem muito bem ser usados no controle deslizante em destaque ou em qualquer outro recurso avançado que você queira exibir em seu site. Esse snippet é voltado principalmente para um site WordPress que tenha uma página inicial personalizada ou uma aparência de estilo de revista.

Esperamos que este artigo tenha ajudado você a exibir as últimas postagens fixas em seu blog do WordPress. Talvez você também queira dar uma olhada em nosso tutorial sobre como adicionar uma data de validade a posts fixos no WordPress.

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

Divulgação: Nosso conteúdo é apoiado pelo leitor. Isso significa que, se você clicar em alguns de nossos links, poderemos receber uma comissão. Veja como o WPBeginner é financiado, por que isso é importante e como você pode nos apoiar. Aqui está nosso processo editorial.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

O kit de ferramentas definitivo WordPress

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

Reader Interactions

8 ComentáriosDeixe uma resposta

  1. umair

    very informative efforts made by you, this code works perfectly fine,
    i have a question that i have multiple categories & sub-categories, so i just want to make a sticky post to each category separately, and displayed on category list page where all posts of that specific category listed, like (Sports category->one sticky post – cooking recipes category -> one sticky post) etc

  2. Dom

    Thanks for getting me on the right track!!
    The code works great in getting the Title to show up where the short code is pasted.

    However, I was trying to find a method to display the entire post (all content, in stead of just a title or even excerpt) on a specific page.

    I decided to play with your code above in order to try and achieve this and finally managed…
    Although the title displays the same size as paragraph text, I’m sure I can fix that.

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

    I simply changed your get_the_excerpt() text to get_the_content() and this successfully pulled in the entire blog post into that page.
    In order to remove the bulleted indentation I then removed the ” ” ” ” tags, but had to leave the apostrophes in place, otherwise the page wouldn’t load.
    So in essence, where ” or ” was before, now there is only ” and so on.

    That’s all I changed and it mostly works like a charm for me…
    There are 2 issues I noticed:
    1: Sometimes it loads most of the post, but not always right down to the end, especially if the post is edited afterwards…anyone with suggestions to ensure this doesn’t happen?
    2: I’d love if the featured image would also show up, this would make it the ultimate flexible solution! Any thoughts here?

    Thanks again for the advice!

    Hope what I explained makes sense to anyone who wants to achieve the same as I was after.

  3. Achi Baten

    How can i show homepage post like you?

  4. richard

    Hello

    Thank you for your code. However i try to achieve something and i have 2 issues.

    I want to display only one sticky post on my home page and only the youtube video present on the content.

    ACtually i display the title and all the content of a post (include texts, pictures and videos).
    Second problem is that it display youtube as a link and not embed directly the video into my homepage.

    Thank you for your help

  5. Raviraj

    Hi,

    I have tried out with the code, It works fine when at least 1 post has been assigned as sticky post else when none of the posts are assigned a sticky, then it will display all latest 5 posts.

    So would be the condition to display only sticky posts, if there are no sticky posts assigned then It should not display anything.

    Thanks in advance

  6. AnastisSourgoutsidis

    ‘caller_get_posts’ has been replaced by ‘ignore_sticky_posts’ since v3.1 so I think its important to change your code to reflect that.
    Also, a) $post->ID is not needed in this instance of get_permalink() as you’ve setup the post data by calling $the_query->the_post(), and if for whatever reason you still want to include $post->ID, you should be global-ing it, i.e. global $post;

Deixe uma resposta

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