Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress
Code

Dominando WP_Query: 10 Exemplos Úteis

by
Difficulty:BeginnerLength:MediumLanguages:
This post is part of a series called Mastering WP_Query.
WP_Query Arguments: Author, Search, Password & Permissions
Combining WP_Query With the Main Query

Portuguese (Português) translation by João Fagner (you can also view the original English article)

Agora que aprendemos quase tudo sobre a classe WP_Query é hora de experimentar alguns exemplos. Nesta parte iremos trabalhar em 10 cenários diferentes para utilizar a classe WP_Query e suas funções relacionadas.

Será um divertido exercício e eu espero que seja igualmente educacional. Vamos começar!

Vamos Relembrar Rapidamente Como Criar o Loop com WP_Query

Apenas para tornar este artigo mais compreensível diferenciando um pouco da série "Dominando WP_Query" eu deveria fazer um nano-tutorial sobre como criar loops de WordPress com a classe WP_Query.

Não é muito diferente do que criar um loop padrão. Um loop típico do WordPress é assim:

E criando um loop com a classe WP_Query tem apenas algumas diferenças:

Vamos ver a diferença entre os dois:

  • Definimos alguns argumentos para nossa instância WP_Query,
  • Nós instanciamos a classe WP_Query,
  • Nós adicionamos $my_query-> para o início das funções have_posts() e the_post() (agora eles são métodos da classe WP_Query),
  • E nós resetamos os dados do $post para que possam retornar a consulta principal.

Agora sabemos como criar um loop com WP_Query e a diferença entre um loop regular e um loop criado com WP_Query. Não vamos criar loops em cada exemplo (por uma questão de manter o tutorial curto e focado no tópico), então você pode se referir a esta seção sempre que você precisa criar um loop com os exemplos abaixo.

Exemplo #1: Posts de um Autor Deste Ano

Digamos que você deseja listar posts de um determinado autor escrito no ano atual em especial da seção "Posts de um Autor Deste Ano". Uma simples combinação de dois parâmetros WP_Query será suficiente:

Use essa consulta no loop e pronto!

Exemplo #2: "Últimas Postagens Desta Categoria" (Exceto o Post Atual)

Digamos que você deseja criar um loop e abaixo de cada post em suas páginas de um post único (single post pages) listar os posts mais recentes da categoria que o post está contido. Claro, você tem que excluir o post atual no caso de ser um dos mais recentes posts da categoria. Aqui está como você pode criar a sua consulta com parâmetros 'cat' e 'post__not_in':

Para o loop, sugiro criar três ou quatro colunas com miniaturas de post acima dos títulos do post. Vai ficar bem legal, debaixo do post e antes da seção de comentários.

Exemplo #3: "Posts Mais Populares" Ordenado pela Contagem de Comentários

WordPress não foi construído com um sistema de "contagem de visualização de post" e os plugins que fornecem essa funcionalidade são famosos por englobar todo o site (porque em cada modo de exibição do post esses plugins escrevem no banco de dados repetidamente para gravarem a contagem de visualização). No entanto, há um outro tipo de medição para determinar quais posts são mais "populares": contagem de comentários. E ao contrário da contagem de visualizações as contagens de comentário já estão no banco de dados — a classe WP_Query torna super fácil ordenar os posts pela contagem de comentários:

Veja como isto é fácil? Agora imagine a criação de um modelo de página personalizada com um loop para executar a consulta — com uma página "Os Posts Mais Comentados".

Exemplo #4: Configuração de um Slider Simples

Ao usar o WordPress para criar sites corporativos, portfólios ou revistas web, sliders tornaram-se algo "obrigatório" por padrão industrial. Eu não sou realmente um fã de sliders (acho que é má UX), mas a web parece que gostou, então não posso simplesmente dizer não aos meus clientes enquanto faço os sites para eles. Se eles querem sliders eu uso uma consulta simples usando a classe WP_Query:

O argumento de 'cat' pode ser usado para recuperar slides de categorias diferentes, assim você pode separar grupos de slide e usar vários slides em várias páginas. Se você vai usar slider apenas em seu site, você pode excluir essa linha e você está pronto para usar.

Exemplo #5: Uma Citação Aleatória na Barra Lateral

Se você está interessado em literatura ou religião, convém ter algumas das suas citações favoritas na barra lateral — isso não é um desperdício de espaço se você tem um propósito. Então, se você vai listar uma citação aleatória na barra lateral em cada exibição da página, você pode usar o seguinte trecho de código para criar um tipo de post e usar a seguinte consulta para criar um loop em sua barra lateral:

Uma Solução Fácil e Elegante.

Exemplo #6: Listando Produtos Entre Uma Faixa de Preço

Eu encontrei este exemplo na Scribu.net e devo dizer é o melhor truque de WP_Query neste tutorial. É um pouco mais técnico do que os outros porque ele pode ser aplicado a um site de comércio eletrônico alimentado por WordPress neste contexto.

Aqui está o trecho de código que você vai usar se você quiser listar itens de um tipo de post personalizado "Product" e filtrar os resultados com os campos personalizados "price":

Um grande parabéns a Silviu-Cristian Burca!

Exemplo #7: Um Shortcode Para Incorporar Posts Dentro de Posts

Aqui está um divertido exercício — e teremos de usar a API de Shortcode também! Neste exemplo, vamos criar um shortcode que pode incorporar um post dentro de um post. (Eu mal consigo me conter para nomear o shortcode como [postception].) No trecho de código a seguir criamos uma função de shortcode que nos permite incorporar posts (ou qualquer post personalizado) e nos permite escolher se desejamos mostrar o post completo ou apenas um resumo:

Exemplo #8: Lista de Posts Agendados Atuais (Com Resumos Opcionais)

Aqui vai uma idéia: por que você não exibi algumas "espreitadelas" de seus próximos posts para seus visitantes? Você pode usar a seguinte função para listar seus posts agendadas com ou sem resumos após os títulos:

Exemplo #9: "Post de Um Ano Atrás - Hoje"

Se seu blog tem mais de um ano e seu conteúdo é atemporal (ou seja, que tanto uma pessoa de 2015 e 2025 irá encontrar o artigo relevante), adicionando uma seção "Post de um ano atrás hoje" poderia levantar suas visualizações de página. Aqui está como fazer isso:

Use essa consulta para construir um loop que exibe um único post do ano passado.

Exemplo #10: Mostrar os Filhos da Página Atual

Você não tem nada que não seja títulos ou sub-páginas para colocar dentro de suas páginas "Serviços", ou "Meus Portfólios"? Talvez um parágrafo de introdução, mas você está certo que essas páginas estão condenadas a serem "placeholders". Ainda assim, é uma boa idéia colocar sub-páginas lá — talvez uma grade de miniaturas quadradas e títulos abaixo. Vamos ver como devemos fazer a consultar, sugiro criar uma página de template para isso:

Encerrando

Espero que tenha gostado destes exemplos tanto quanto eu gostei de escrevê-los. Dei uma atenção especial para dar exemplos variados para ser divertido e para estimular a sua criatividade.

Se você pensou em exemplos melhores ao ler os meus, ou tiver dúvidas, não hesite em se atirar em um comentário abaixo. E se você gostou do artigo, não se esqueça de compartilhar com seus amigos!

Na próxima parte, vamos falar sobre WP_User_Query uma irmã classes de WP_Query. Até lá!

Seja o primeiro a saber sobre novas traduções–siga @tutsplus_pt no Twitter!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.