«

»

Customizando a query do WordPress

Um dos mais poderosos recursos do WordPress é a WP Query. É ela que determina qual conteúdo será exibido e em qual página ou template. É muito provável que você precise (ou já precisou) modificar esta query para atender às suas necessidades.

Alguns exemplos:

  • Para não mostrar posts de uma categoria X na home do seu site
  • Aumentar ou diminuir o número de posts por página de um post type específico
  • Determinar quais posts são exibidos e ordenar baseando-se em uma post meta
  • Dentro de uma página, fazer uma query diferente para obter diferentes conteúdos

Antes de tudo, conheça os tipos de Loop

Há dois contextos diferentes para loops:

  • Principal (main loop) – É o loop baseado numa requisição via URL e processada antes que os templates são carregados.
  • Secundários (secondary loop) – São loops que ocorrem de qualquer outra maneira, chamados de arquivos do template ou de outra forma.

Não use query_posts() para alterar o loop principal. Como pode ser visto no Codex, há um monte de advertências sobre o uso desta função, use a classe WP_Query() ou get_posts().

Resetando os loops

Use wp_reset_query() se você usou query_posts() ou mexeu diretamente com a global $wp_query. Use wp_reset_postdata() se você usou the_post() ou setup_postdata(), ou se mexeu com a global $post e precisa restaurar a query ao estado inicial.

Crie uma nova query dentro de uma página ou template

Criar uma nova query dentro de uma página ou template, em alguns casos, é bastante útil. Por exemplo, se você tivesse uma página sobre o Turismo e quisesse exibir os 5 últimos posts sobre este assunto no rodapé.

Para isso, o melhor a fazer é usar a classe WP_Query().