Airton Vancin Junior
Blog Plugins Projetos Sobre Contato Zero Downtime
Airton Vancin Junior
Blog Plugins Projetos Sobre Contato Zero Downtime

Modificando a consulta atual usando pre_get_posts

É um gancho que permite que você modifique a consulta principal, é muito comum você precisar alterar o conteúdo que é exibido em uma página, então vamos usar esse gancho que facilita muito o trabalho.

2 de jan. de 2015 · 2 min de leitura

#wordpress

O pre_get_posts é um gancho que permite que você modifique a consulta principal, é muito comum você precisar alterar o conteúdo que é exibido em uma página, então vamos usar esse gancho que facilita muito o trabalho.

Para poder funcionar você precisa adicionar a função no arquivo functions.php.

Não use query_posts() para alterar a consulta principal, como o próprio Codex do WordPress diz essa função não é para ser usada em temas e plugins, existe outros métodos mais confiáveis que é o pre_get_posts que vamos ver agora.

Alterando a quantidade de posts na página

function change_posts_per_page( $query ) {
    if( $query->is_main_query() && $query->is_home() ) {
        $query->set( 'posts_per_page', '20' );
    }
}

add_action( 'pre_get_posts', 'change_posts_per_page' );
  • $query->is_main_query(): isso verifica se estamos acessando a consulta principal
  • $query->is_home(): essa outra verificamos se estamos na homepage
  • $query->set( ‘posts_per_page’, ‘20’ ): aqui modificamos para exibir 20 posts por página

Excluir páginas do resultado da busca

function search_filter($query) {
    if ( !is_admin() && $query->is_main_query() ) {
        if ($query->is_search) {
            $query->set('post_type', 'post');
        }
    }
}

add_action('pre_get_posts','search_filter');
  • !is_admin(): verificamos se não for a página de adminstração
  • $query->is_main_query(): e se estamos acessando a consulta principal
  • $query->is_search: por fim verificamos se é a página de busca
  • $query->set(‘post_type’, ‘post’): aqui definimos para o resultado da busca só exibir posts

Incluir Custom Post Types no resultado da busca

function search_filter($query) {
    if ( !is_admin() && $query->is_main_query() ) {
        if ($query->is_search) {
            $query->set('post_type', array( 'post', 'eventos' ) );
        }
    }
}

add_action('pre_get_posts','search_filter');
  • $query->set(‘post_type’, array( ‘post’, ‘eventos’ ) ): aqui setamos para o resultado da busca exibir posts e o custom post type eventos

Ordenar Custom Post Type por título em ordem decrescente


function modify_query_eventos( $query ) {
    if( $query->query_vars['post_type'] === 'eventos' && !is_admin() ) {
        $query->set('orderby', 'title');
        $query->set('order', 'desc');
    }
}

add_action( 'pre_get_posts', 'modify_query_eventos' );
  • $query->query_vars[‘post_type’]: verifica se o custom post type é o de eventos
  • !is_admin(): e se não for a página de administração
  • $query->set(‘orderby’, ‘title’): ordena por título
  • $query->set(‘order’, ‘desc’): em ordem decrescente

Algumas observações

  • As modificações devem ser feitas usando o método $query->set(‘key’,‘value’), são diversas possibilidades para você personalizar seus posts, consulte todos os parametros possíveis aqui WP_Query Parameters.
  • Essa alteração na consulta também pode afetar a página de administração, certifique-se de verificar se sua consulta esta afetando a página de adminsitração dos posts.
  • Se você precisar criar um segundo bloco de posts na página use o WP_Query().

Referências

  • Palestra Leo Baiano WordCamp São Paulo 2014 - Dicas e Truques para desenvolver Projetos Web Utilizando WordPress.
  • wpmidia - Customizando a query do WordPress
  • Codex Wordpress pre_get_posts
Compartilhar:

Posts Relacionados

Como construimos sites WordPress com Lando e Pantheon 🚀

Se você trabalha ou já fez Freela com WordPress provavelmente já ouviu falar em (Mamp, Xamp, Wamp…). O que basicamente essas ferramentas fazem é instalar e configurar um servidor local apache com PHP e MySQL e assim você conseguir rodar o WordPress localmente para desenvolvimento.

Modificando a consulta atual usando pre_get_posts

É um gancho que permite que você modifique a consulta principal, é muito comum você precisar alterar o conteúdo que é exibido em uma página, então vamos usar esse gancho que facilita muito o trabalho.

WordPress and Nextcloud SSO: A Practical Guide to Single Sign-On

en

Two ways to wire single sign-on between WordPress and Nextcloud: a shared SAML provider, or WordPress as the OIDC provider. When to pick which, and the traps.

Comentários

Front End Zero Downtime

Garanta que suas aplicações Web estejam sempre disponíveis, sem interrupções, sem perda de receita.

Disponível por tempo limitado.

Airton Vancin

Desenvolvedor de software com mais de 15 anos de experiência, construindo produtos web modernos e escaláveis.

GitHub LinkedIn WordPress Email Substack

Mapa do Site

  • Home
  • Blog
  • Prévias
  • Sobre
  • Contato
  • Zero Downtime
Projetos
  • Balancewise.io
  • Timberoad
  • Pablo Escobar Ipsum
Plugins WP
  • Video Destacado
  • Manage User Roles
  • Nudge SEO AI
  • SSO Connector for JumpCloud
  • Notria AI Suite

© 2026 Airton Vancin. Todos os direitos reservados.

Termos de Uso Políticas de Privacidade