WordPress logo

Remover Sticky Posts da consulta principal do WordPress é algo bastante simples, e existem vários motivos pelos quais você poderia querer fazer isso se estiver criando um tema novo.

Primeiramente, um Sticky Post é aquele que é marcado pelo escritor para ser apresentado como “Destaque” no tema que estiver instalado no WordPress do mesmo. Eles também são chamados de “Posts fixos” (por aparecerem sempre primeiro) ou simplesmente “Destaques” (por serem apresentados em local de destaque no tema).

Para criar um post fixo, o escritor deve marcar a caixa “Fixar este post na página inicial” na “Visibilidade” do mesmo. Veja um exemplo:

Criando Sticky Posts

Criando Sticky Posts

Um dos motivos mais interessantes para o uso de Sticky Posts no WordPress, seria gerar uma nova consulta apenas com esse tipo de post e apresentá-lo em local diferenciado e com maior destaque no tema. Um exemplo disso seria nosso tema “Letícia“, que exibe posts fixos em um Carousel do Bootstrap 3 no topo da página.

Se você não remover os Sticky Posts da consulta principal do WordPress, terá duplicação de conteúdo, ou seja, o mesmo post aparecerá na consulta que criou para seus destaques e na consulta principal.

Para remover tal duplicidade de conteúdo, simplesmente adicione a seguinte função no seu arquivo “functions.php“.

/**
 * Remove posts fixos.
 *
 * Remove posts fixos da consulta principal apenas na front-page e na home
 */
function teo_remove_sticky( $query = false ) {

	// Verifica se a consulta está sendo realizada na front-page ou na home
	if ( @is_front_page() || @is_home() ) { 
		// Remove os sticky posts da consulta (posts fixos)
		$query->set(
			'post__not_in',
			get_option( 'sticky_posts' )
		);
	}

} // teo_remove_sticky

// Adiciona a ação
add_action('pre_get_posts','teo_remove_sticky');

Apenas lendo os comentários lhe dará grande ajuda para modificar a função caso precise.

No trecho acima, estou removendo os “Sticky posts” da consulta principal do WordPress apenas na “Front page” e na “Home”. Isso não afetará nenhuma outra parte do tema.

Caso tenha dúvidas, deixa-a nos comentários.

Até a próxima.