Realize consultas no WordPress com WP_Query
Publicados: 2023-02-12O banco de dados que alimenta seu site WordPress está cheio de informações valiosas. É isso que permite filtrar seus posts e páginas por diversas variáveis. Se o que você deseja exibir não faz parte do seu tema, no entanto, existem outras maneiras de usar esses dados.
É aqui que entra o WP_Query. Esta é uma classe PHP que utiliza uma ampla variedade de parâmetros. Consequentemente, ele permite que você extraia dados do banco de dados do WordPress para uso ou exibição em seu site.
Neste artigo, forneceremos uma compreensão mais profunda da classe WP_Query e como ela pode ser usada. Também mostraremos algumas etapas importantes a serem seguidas ao usá-lo. Se você estiver pronto, vamos mergulhar de cabeça!
O que é WP_Query?
Como mencionamos, WP_Query é uma classe PHP usada pelo banco de dados do WordPress. Essa classe em particular pode fazer várias coisas, mas principalmente é usada para extrair postagens do banco de dados.
Como o próprio nome indica, ele faz uma consulta com base nos critérios que você definir para ele. Como há muitos parâmetros que você pode usar com WP_Query no WordPress, você pode extrair e exibir postagens de várias maneiras exclusivas. Exploraremos essas opções com mais detalhes posteriormente neste post.
Como usar WP_Query
Mesmo que você esteja apenas aprendendo os vários aspectos da base de código do WordPress, WP_Query é uma boa classe para começar. Agora, vamos detalhar quatro maneiras diferentes de usá-lo em seu site.
1. Comece com um loop personalizado
Uma das melhores formas de conhecer a chamada WP_Query é através do WordPress Loop. Se você não está familiarizado com o que é o Loop, é um conceito importante para ler.
O Loop é o que chama o banco de dados solicitando o conteúdo do post e exibe os dados que são retornados. Ele também funciona com base em parâmetros definidos, como quantas postagens você deseja que seu site exiba em uma única página (algo que você pode configurar no menu Configurações > Leitura ).
O básico do Loop é assim:
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// Display post content
endwhile;
endif;
?>
Esta declaração simples está essencialmente dizendo que, se houver postagens, elas devem ser exibidas. Obviamente, você pode adicionar uma ampla variedade de tags de modelo a essa base para criar a exibição desejada.
Você também pode inserir WP_Query no Loop. Isso permite que você coloque parâmetros em quais postagens serão retornadas. Vamos detalhar como seria:
<?php
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
Você verá as mesmas instruções if/while do Loop básico, mas há uma string WP_Query adicional. Quaisquer que sejam os parâmetros definidos aqui, determinarão quais postagens serão exibidas.
Por exemplo, se você quiser excluir um determinado autor de uma lista de posts, você pode fazer isso no Loop com WP_Query:
$query = new WP_Query( array( 'author' => -12 ) );
Ao colocar isso no Loop, suas postagens exibidas não incluiriam mais o usuário com o número de autor “12”.
O número de parâmetros que você pode usar com esse método é praticamente infinito. Você pode incluir informações de categoria, bem como taxonomias avançadas, apenas para dar dois exemplos.
2. Argumentos: a espinha dorsal das consultas personalizadas no WordPress
No exemplo anterior, você deve ter notado “($args)” como parte da string. Esta é uma parte vital da consulta que se refere aos 'argumentos' incluídos. Ele informa ao banco de dados exatamente o que incluir nos dados retornados.
Essencialmente, esses argumentos podem ser configurados para determinar os resultados exatos que você deseja exibir. Os argumentos também podem ser usados para alterar o valor das variáveis. Por exemplo, se quiser alterar como sua lista de categorias aparece na página, você pode usar um argumento.
Seu argumento definirá uma matriz de variáveis e valores. Então, se você quiser, pode usar um argumento para definir um array e dizer ao seu banco de dados para apresentar as categorias em ordem decrescente. Além disso, você pode usar o mesmo método para excluir qualquer categoria que não contenha postagens.
3. Parâmetros em WP_Query: Categoria, Tag e Mais
Até este ponto, mencionamos apenas os parâmetros de passagem. Neste ponto, vamos olhar mais de perto o que eles podem realmente fazer. Sua função principal é permitir que você extraia coleções de postagens personalizadas.
Um exemplo de parâmetro que pode ser usado no cabeçalho do seu site é o parâmetro Categoria. Você pode usar isso para especificar categorias específicas para exibição. Isso é feito fornecendo o número ou slug da categoria relevante.
Além disso, você pode fazer o mesmo com o parâmetro Tag. Claro, os parâmetros Category e Tag são apenas a ponta do iceberg quando se trata de usar WP_Query.
4. Modifique objetos com métodos e propriedades
Embora não seja recomendado alterar diretamente as propriedades de uma classe como WP_Query, você pode interagir com elas usando métodos. Essencialmente, os métodos são como funções, enquanto as propriedades são equivalentes às variáveis.
WP_Query tem muitas propriedades. Eles variam de propriedades simples de “$posts” a propriedades mais complicadas. Seja qual for o método usado para interagir com eles, os dados serão retornados com base nos parâmetros que você escolher implementar.
WP_Query vs. query_posts () no WordPress
Vale a pena notar que existe outra maneira de modificar a consulta principal da sua página. Esta é a função query_posts(). Embora isso possa funcionar de maneira semelhante ao WP_Query, também pode ser muito problemático.
A referência de código do WordPress recomenda fortemente que você não use essa função dentro do Loop principal do seu site. Também é melhor evitá-lo em plugins e temas. Isso ocorre porque substituirá completamente sua consulta principal.
A classe WP_Query é preferida, porque você também pode 'redefinir' o Loop principal depois de executar uma consulta. Como o WP_Query permite executar várias consultas em um loop, você também deve entender como implementar a função wp_reset_postdata.
Se você incorporou um loop secundário dentro do loop principal do WordPress, a função de redefinição será colocada no final e ficará assim:
<?php wp_reset_postdata(); ?>
Isso restaurará as tags de modelo padrão e você voltará a ser como as coisas eram antes de seu loop secundário ser iniciado.
Personalize seu site WordPress com o WP Engine
Ser capaz de fazer ajustes em como os itens são exibidos em seu site é apenas um dos benefícios de usar o WordPress. Compreender o WP_Query e aproveitar as ferramentas fornecidas na página de recursos do desenvolvedor pode ajudá-lo a criar sites verdadeiramente personalizados.
Aqui no WP Engine, somos apaixonados por garantir que você tenha os recursos necessários para criar sites atraentes. Confira nossas soluções WordPress e planos de hospedagem hoje!