{"id":33474,"date":"2023-03-14T19:24:16","date_gmt":"2023-03-14T22:24:16","guid":{"rendered":"\/tutoriais\/?p=33474"},"modified":"2025-04-09T05:00:42","modified_gmt":"2025-04-09T08:00:42","slug":"wp_query","status":"publish","type":"post","link":"\/br\/tutoriais\/wp_query\/","title":{"rendered":"WP_Query: como usar + exemplos com c\u00f3digos"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Por padr&atilde;o, o WordPress automaticamente classifica seus posts dos mais recentes para os mais antigos. Ainda que os visitantes possam buscar por publica&ccedil;&otilde;es espec&iacute;ficas utilizando categorias e tags, eles podem n&atilde;o conseguir encontrar o conte&uacute;do que desejam. Para organizar seus posts e fazer uma curadoria para cada visitante, pode ser &uacute;til usar o <strong>WordPress WP_Query<\/strong>.<\/p><p class=\"wp-block-paragraph\">Usando o WP_Query, voc&ecirc; pode personalizar a exibi&ccedil;&atilde;o dos posts e p&aacute;ginas do seu site. Essa classe PHP permite que voc&ecirc; simplifique solicita&ccedil;&otilde;es complexas ao banco de dados. Como desenvolvedor ou dono de sites, o WP_Query pode te ajudar a customizar suas p&aacute;ginas para al&eacute;m do seu tema padr&atilde;o.&nbsp;<\/p><p class=\"wp-block-paragraph\">Neste tutorial vamos explicar o que &eacute; WP_Query. Depois, vamos te mostrar como utilizar essa fun&ccedil;&atilde;o no seu site WordPress. Por fim, oferecemos alguns exemplos de como implementar essas pr&aacute;ticas em seu blog. Vamos l&aacute;!<\/p><figure class=\"wp-block-image size-large\"><a href=\"https:\/\/assets.hostinger.com\/content\/tutorials\/pdf\/WordPress-Security-Checklist(pt-br).pdf\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" width=\"1024\" height=\"283\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/WordPress-Cheat-Sheet-BR.png\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-30402\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/WordPress-Cheat-Sheet-BR.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/WordPress-Cheat-Sheet-BR.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/WordPress-Cheat-Sheet-BR.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/WordPress-Cheat-Sheet-BR.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/WordPress-Cheat-Sheet-BR.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><p>\n\n\n\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-uma-introducao-ao-wp-query\"><strong>Uma Introdu&ccedil;&atilde;o ao WP_Query<\/strong><\/h2><p class=\"wp-block-paragraph\">No WordPress, os dados do seu site s&atilde;o armazenados em um banco de dados MySQL. Esse banco de dados inclui tudo, desde posts, p&aacute;ginas e coment&aacute;rios, at&eacute; as configura&ccedil;&otilde;es do site.&nbsp;<\/p><p class=\"wp-block-paragraph\">Quando um visitante clica em qualquer bot&atilde;o ou link do seu site, essa a&ccedil;&atilde;o envia uma solicita&ccedil;&atilde;o para o seu <a href=\"\/br\/tutoriais\/banco-de-dados-wordpress\/\"><strong>banco de dados WordPress<\/strong><\/a>.<\/p><p class=\"wp-block-paragraph\">Ent&atilde;o, o seu banco de dados localiza e obt&eacute;m a p&aacute;gina ou post espec&iacute;fico e exibe eles em seu site, baseado nessa solicita&ccedil;&atilde;o &mdash; que &eacute; chamada de <a href=\"\/br\/tutoriais\/o-que-e-query\/\"><strong>query<\/strong><\/a>.&nbsp;<\/p><p class=\"wp-block-paragraph\">Como dono de um site, voc&ecirc; pode tirar proveito das queries para buscar informa&ccedil;&otilde;es espec&iacute;ficas no seu banco de dados. Apesar de ser poss&iacute;vel construir queries SQL, esse n&atilde;o &eacute; o modo mais eficiente para obter informa&ccedil;&otilde;es. &Eacute; a&iacute; que entra a WP_Query.<\/p><p class=\"wp-block-paragraph\">A <a href=\"https:\/\/codex.wordpress.org\/pt-br:Refer%C3%AAncia_de_Classe\/WP_Query\" target=\"_blank\" rel=\"noopener\"><strong>WP_Query<\/strong><\/a> &eacute; uma classe PHP que pode ser utilizada na constru&ccedil;&atilde;o de queries para seu banco de dados. Essa classe j&aacute; vem integrada no WordPress, e &eacute; acionada a cada vez que algu&eacute;m busca por seus conte&uacute;dos.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/yIGeDBflXgG0dHqKIfRJ7nsmX9_igQncpLsWjD5sfXvme9E54B0fRJdnX004TUkoCz5SmGvyq03Dhp4a2RRBSXly9BhEdi2Q1JPBFndsnTqKQxZAWqB9TxK1xDzf73vcCIGXY7G_mQwq8FI5zV0M6Dg\" alt=\"Captura de tela da p&aacute;gina de resultado de busca por hospedagem wordpress no blog da Hostinger\"><\/figure>\n<\/div><p class=\"wp-block-paragraph\">De todo modo, implementar uma query WordPress personalizada pode permitir que os usu&aacute;rios encontrem algum conte&uacute;do espec&iacute;fico sem necessitar de uma pesquisa. Se voc&ecirc; precisa renderizar um grupo espec&iacute;fico de posts no front-end do seu site, &eacute; poss&iacute;vel fazer isso facilmente utilizando um tipo de post personalizado WP_Query.<\/p><p class=\"wp-block-paragraph\">Por exemplo, voc&ecirc; pode querer <a href=\"\/br\/tutoriais\/como-criar-custom-post-types-wordpress\/\"><strong>criar posts personalizados no WordPress<\/strong><\/a>. Para exibir esses posts, voc&ecirc; pode escrever uma query espec&iacute;fica. Abaixo indicamos a <a href=\"https:\/\/gist.github.com\/alexander-young\/d4e7fa6c9e6ffa9a9ea37219be83c8f8\" target=\"_blank\" rel=\"noopener\"><strong>estrutura de c&oacute;digo<\/strong><\/a> b&aacute;sica que pode ser utilizada para isso:<\/p><pre class=\"wp-block-preformatted\">\/\/ WP QUERY\n\n$query = new WP_Query([\n\n'post_type' =&gt; 'press-release'\n\n\"posts_per_page =&gt; 25,\n\n'category_name' =&gt; 'health',\n\n]);<\/pre><p class=\"wp-block-paragraph\">Esse c&oacute;digo funciona ao personalizar o <a href=\"https:\/\/codex.wordpress.org\/pt-br:O_Loop\" target=\"_blank\" rel=\"noopener\"><strong>Loop<\/strong><\/a>. Basicamente, o Loop &eacute; um c&oacute;digo PHP que o WordPress utiliza para exibir certas publica&ccedil;&otilde;es. O WordPress sabe como processar e formatar cada post baseado em crit&eacute;rios espec&iacute;ficos do seu tipo de post personalizado WP_Query.<\/p><p class=\"wp-block-paragraph\">A WP_Query tamb&eacute;m &eacute; muito &uacute;til para desenvolvedores. Voc&ecirc; pode personalizar temas do WordPress utilizando esta classe PHP sem consultar diretamente o banco de dados.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-usar-a-wp-query-do-wordpress-4-metodos\"><strong>Como Usar a WP_Query do WordPress (4 M&eacute;todos)<\/strong><\/h2><p class=\"wp-block-paragraph\">Agora que voc&ecirc; j&aacute; sabe o b&aacute;sico sobre o que &eacute; WP_Query, vamos discutir como criar sua primeira query. Desse modo, voc&ecirc; poder&aacute; personalizar a exibi&ccedil;&atilde;o do seu site de forma simples e r&aacute;pida!<\/p><h3 class=\"wp-block-heading\" id=\"h-1-crie-um-loop\"><strong>1. Crie um Loop<\/strong><\/h3><p class=\"wp-block-paragraph\">Voc&ecirc; precisar&aacute; se familiarizar com o WordPress Loop para come&ccedil;ar. Como mencionado anteriormente, o Loop &eacute; respons&aacute;vel por extrair os dados de um post a partir do banco de dados. Ele determina como seu conte&uacute;do ser&aacute; exibido de acordo com os arquivos de template do seu tema.&nbsp;<\/p><p class=\"wp-block-paragraph\">Baseado nos par&acirc;metros que voc&ecirc; definir, abaixo indicamos o que o Loop &eacute; capaz de exibir:<\/p><ul class=\"wp-block-list\">\n<li>Conte&uacute;dos de posts e campos personalizados do WordPress<\/li>\n\n\n\n<li>T&iacute;tulos e trechos de posts na p&aacute;gina inicial<\/li>\n\n\n\n<li>Conte&uacute;do e coment&aacute;rios de um &uacute;nico post<\/li>\n\n\n\n<li>Conte&uacute;do de p&aacute;gina individual usando tags do template<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Antes de personalizar o Loop com WP_Query, voc&ecirc; precisar&aacute; saber qual a estrutura do Loop. Aqui indicamos um exemplo de <a href=\"https:\/\/developer.wordpress.org\/themes\/basics\/the-loop\/#the-loop-in-detail\" target=\"_blank\" rel=\"noopener\"><strong>loop b&aacute;sico<\/strong><\/a>:<\/p><pre class=\"wp-block-preformatted\">&lt;?php\n\nif ( have_posts() ) :\n\n&nbsp;&nbsp;&nbsp;while ( have_posts() ) : the_post();\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Display post content\n\n&nbsp;&nbsp;&nbsp;endwhile;\n\nendif;\n\n?&gt;<\/pre><p class=\"wp-block-paragraph\">Vamos analisar individualmente cada parte deste loop. Primeiramente, a fun&ccedil;&atilde;o &ldquo;have_posts()&rdquo; vai verificar se h&aacute; posts em seu site. Caso sim, a condi&ccedil;&atilde;o &ldquo;while&rdquo; dar&aacute; continua&ccedil;&atilde;o ao loop para todos os posts. Basicamente, isso informa o seu banco de dados que todo post deve ser exibido em seu site.&nbsp;<\/p><p class=\"wp-block-paragraph\">De todo modo, voc&ecirc; pode querer n&atilde;o exibir todos os seus posts. Ao inserir o c&oacute;digo <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/#standard-loop\" target=\"_blank\" rel=\"noopener\"><strong>WP_Query<\/strong><\/a> no Loop, voc&ecirc; pode habilitar o WordPress para que ele renderize apenas certos posts:<\/p><pre class=\"wp-block-preformatted\">?php\n\n\/\/ The Query\n\n$the_query = new WP_Query( $args );\n\n\/\/ The Loop\n\nif ( $the_query-&gt;have_posts() ) {\n\n&nbsp;&nbsp;&nbsp;echo '&lt;ul&gt;';\n\n&nbsp;&nbsp;&nbsp;while ( $the_query-&gt;have_posts() ) {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$the_query-&gt;the_post();\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo '&lt;li&gt;' . get_the_title() . '&lt;\/li&gt;';\n\n&nbsp;&nbsp;&nbsp;}\n\n&nbsp;&nbsp;&nbsp;echo '&lt;\/ul&gt;';\n\n} else {\n\n&nbsp;&nbsp;\/\/ no posts found\n\n}\n\n\/* Restore original Post Data *\/\n\nwp_reset_postdata();<\/pre><p class=\"wp-block-paragraph\">Esse c&oacute;digo cont&eacute;m a mesma estrutura b&aacute;sica do Loop com os comandos <strong>if <\/strong>e <strong>while<\/strong>. Entretanto, h&aacute; uma string adicional de WP_Query.<\/p><p class=\"wp-block-paragraph\">Voc&ecirc; pode personalizar o Loop para que o seu site fa&ccedil;a a exibi&ccedil;&atilde;o de posts espec&iacute;ficos, como aqueles associados a certos autores, categorias e <a href=\"\/br\/tutoriais\/taxonomia-wordpress\/\"><strong>taxonomias do WordPress<\/strong><\/a>, tudo de acordo com os par&acirc;metros que voc&ecirc; configurar. Tamb&eacute;m &eacute; poss&iacute;vel filtrar os resultados de acordo com a data, tag, campos personalizados e outras categorias. Ou seja, no geral, quando falamos em personalizar o Loop com WP_Query, h&aacute; muitos caminhos que voc&ecirc; pode seguir.&nbsp;<\/p><h3 class=\"wp-block-heading\" id=\"h-2-use-argumentos\"><strong>2. Use Argumentos<\/strong><\/h3><p class=\"wp-block-paragraph\">Quando voc&ecirc; estruturar sua codifica&ccedil;&atilde;o em WP_Query, ser&aacute; necess&aacute;rio incluir quatro elementos b&aacute;sicos:<\/p><ul class=\"wp-block-list\">\n<li>Argumentos da query<\/li>\n\n\n\n<li>A query em si&nbsp;<\/li>\n\n\n\n<li>O loop<\/li>\n\n\n\n<li>Termina&ccedil;&otilde;es para resetar os dados dos posts<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Uma das partes mais fundamentais da sua query &eacute; o argumento (<em>argument <\/em>em ingl&ecirc;s), geralmente nomeado de WP_Query args. O argumento informa ao WordPress quais dados voc&ecirc; deseja obter a partir do banco de dados. Ao inv&eacute;s de exibir todo o conte&uacute;do dos seus posts, o argumento ir&aacute; determinar algumas condi&ccedil;&otilde;es no seu loop.<\/p><p class=\"wp-block-paragraph\">Voc&ecirc; provavelmente reparou na linha ($args) no nosso exemplo anterior. Ali &eacute; onde voc&ecirc; ir&aacute; incluir seu query argument.<\/p><p class=\"wp-block-paragraph\">Para <a href=\"https:\/\/code.tutsplus.com\/pt\/tutorials\/wp_query-arguments-categories-and-tags--cms-23070\" target=\"_blank\" rel=\"noopener\"><strong>estruturar seus argumentos WP_Query<\/strong><\/a>, ser&aacute; necess&aacute;rio posicionar certos par&acirc;metros em uma matriz (<em>array<\/em>). Vamos discutir os par&acirc;metros de forma mais aprofundada na pr&oacute;xima se&ccedil;&atilde;o, mas abaixo est&aacute; a estrutura padr&atilde;o de um argumento b&aacute;sico:<\/p><pre class=\"wp-block-preformatted\">$args = array(\n\n&nbsp;&nbsp;&nbsp;&nbsp;'parameter1' =&gt; 'value',\n\n&nbsp;&nbsp;&nbsp;&nbsp;'parameter2' =&gt; 'value',\n\n&nbsp;&nbsp;&nbsp;&nbsp;'parameter3' =&gt; 'value'\n\n);<\/pre><p class=\"wp-block-paragraph\">Por exemplo, se voc&ecirc; deseja exibir apenas posts que possuem a tag &ldquo;cooking&rdquo;, seu argumento pode ser estruturado como no c&oacute;digo indicado abaixo:<\/p><pre class=\"wp-block-preformatted\">$query = new WP_Query( array( 'tag' =&gt; 'cooking' ) );<\/pre><p class=\"wp-block-paragraph\">Se voc&ecirc; n&atilde;o incluir um WP_Query arg, nenhum conte&uacute;do ser&aacute; obtido no seu banco de dados. Sem essa informa&ccedil;&atilde;o, o WordPress n&atilde;o sabe quais posts devem ser exibidos.&nbsp;<\/p><h3 class=\"wp-block-heading\" id=\"h-3-defina-parametros\"><strong>3. Defina Par&acirc;metros<\/strong><\/h3><p class=\"wp-block-paragraph\">Como mencionamos na se&ccedil;&atilde;o anterior, configurar par&acirc;metros &eacute; um passo importante para personalizar a WP_Query. Voc&ecirc; pode habilitar o WordPress para que ele localize no banco de dados e fa&ccedil;a a exibi&ccedil;&atilde;o de uma cole&ccedil;&atilde;o de posts personalizada, basta especificar essa informa&ccedil;&atilde;o.<\/p><p class=\"wp-block-paragraph\">Se voc&ecirc; n&atilde;o tem certeza quanto a quais par&acirc;metros incluir em seu argumento, o WordPress oferece exemplos para diversos usos. Dado que esses exemplos j&aacute; s&atilde;o codificados para voc&ecirc;, eles podem poupar muito tempo e esfor&ccedil;os quando estiver construindo sua classe WP_Query.<\/p><p class=\"wp-block-paragraph\">Abaixo listamos alguns <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/#parameters\" target=\"_blank\" rel=\"noopener\"><strong>par&acirc;metros comuns<\/strong><\/a> que voc&ecirc; pode utilizar:<\/p><ul class=\"wp-block-list\">\n<li><strong>Posts_per_page<\/strong> &ndash; define o n&uacute;mero de posts que voc&ecirc; deseja exibir.<\/li>\n\n\n\n<li><strong>Author<\/strong> &ndash; limita os resultados a partir de um ou mais autores.<\/li>\n\n\n\n<li><strong>Cat<\/strong> &ndash; especifica as categorias que os resultados devem abranger.<\/li>\n\n\n\n<li><strong>Tag<\/strong> &ndash; define posts que possuem etiquetas espec&iacute;ficas.&nbsp;<\/li>\n\n\n\n<li><strong>Orderby<\/strong> &ndash; classifica os resultados por autor, tipo de post, data, etc.<\/li>\n\n\n\n<li><strong>Order<\/strong> &ndash; ordena os resultados em ordem crescente ou decrescente.&nbsp;<\/li>\n\n\n\n<li><strong>Post_type<\/strong> &ndash; define se a query deve requisitar posts, p&aacute;ginas ou tipos de posts personalizados.&nbsp;<\/li>\n\n\n\n<li><strong>Post_status<\/strong> &ndash; especifica se os posts est&atilde;o em progresso, agendados, publicados ou deletados.&nbsp;<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Por exemplo, voc&ecirc; pode precisar exibir posts de uma <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/#category-parameters\" target=\"_blank\" rel=\"noopener\"><strong>certa categoria<\/strong><\/a>. Nesse caso, &eacute; poss&iacute;vel incluir o nome e a <a href=\"https:\/\/www.hostinger.com\/br\/tutoriais\/o-que-e-slug-wordpress\/\"><strong>slug<\/strong><\/a> de tal categoria:<\/p><pre class=\"wp-block-preformatted\">$query = new WP_Query( array( 'category_name' =&gt; 'staff' ) );<\/pre><p class=\"wp-block-paragraph\">O exemplo acima define a exibi&ccedil;&atilde;o de posts inclu&iacute;dos nessa categoria WP_Query e qualquer outra child-page da mesma categoria.<\/p><p class=\"wp-block-paragraph\">Usando par&acirc;metros diferentes, voc&ecirc; tamb&eacute;m pode exibir posts de uma <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/#date-parameters\" target=\"_blank\" rel=\"noopener\"><strong>data espec&iacute;fica<\/strong><\/a>. Por exemplo, para exibir conte&uacute;dos de 9h at&eacute; 17h em dias da semana, o par&acirc;metro que pode ser utilizado &eacute; este indicado abaixo:<\/p><pre class=\"wp-block-preformatted\">$args = array(\n\n&nbsp;&nbsp;&nbsp;&nbsp;'date_query' =&gt; array(\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'hour'&nbsp; =&gt; 9,\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'compare' &nbsp; =&gt; '&gt;=',\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'hour'&nbsp; =&gt; 17,\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'compare' &nbsp; =&gt; '&lt;=',\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'dayofweek' =&gt; array( 2, 6 ),\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'compare' &nbsp; =&gt; 'BETWEEN',\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),\n\n&nbsp;&nbsp;&nbsp;&nbsp;),\n\n&nbsp;&nbsp;&nbsp;&nbsp;'posts_per_page' =&gt; -1,\n\n);\n\n$query = new WP_Query( $args );<\/pre><p class=\"wp-block-paragraph\">O n&uacute;mero de par&acirc;metros que voc&ecirc; pode utilizar &eacute; praticamente ilimitado. Ao incluir essas condi&ccedil;&otilde;es personalizadas em seus argumentos, sua WP_Query poder&aacute; apresentar os dados corretos com sucesso.&nbsp;<\/p><h3 class=\"wp-block-heading\" id=\"h-4-modifique-as-propriedades-da-classe-com-metodos\"><strong>4. Modifique as Propriedades da Classe com M&eacute;todos<\/strong><\/h3><p class=\"wp-block-paragraph\">J&aacute; que a WP_Query &eacute; uma classe PHP, ela cont&eacute;m <a href=\"https:\/\/www.php.net\/manual\/pt_BR\/language.oop5.constants.php\" target=\"_blank\" rel=\"noopener\"><strong>constantes de classe<\/strong><\/a>, chamadas de propriedades. Essas fun&ccedil;&otilde;es s&atilde;o vari&aacute;veis para o elemento PHP.&nbsp;<\/p><p class=\"wp-block-paragraph\">Os desenvolvedores do WordPress recomendam n&atilde;o alterar as propriedades da classe WP_Query diretamente. De todo modo, voc&ecirc; pode utilizar <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/#methods\" target=\"_blank\" rel=\"noopener\"><strong>m&eacute;todos<\/strong><\/a> para interagir com elas.&nbsp;<\/p><p class=\"wp-block-paragraph\">Os <em>methods<\/em> funcionam de forma similar &agrave;s fun&ccedil;&otilde;es. Quando voc&ecirc; modifica os m&eacute;todos de uma classe WP_Query, &eacute; poss&iacute;vel personalizar os dados requisitados pela query ao banco de dados.&nbsp;<\/p><p class=\"wp-block-paragraph\">Na documenta&ccedil;&atilde;o para WP_Query, h&aacute; uma lista de <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/#methods\" target=\"_blank\" rel=\"noopener\"><strong>diversas fun&ccedil;&otilde;es para tarefas b&aacute;sicas<\/strong><\/a>. Por exemplo, incluir uma fun&ccedil;&atilde;o reset_postdata() pode ser um passo importante quando estiver escrevendo sua WP_Query. Esse m&eacute;todo reseta as propriedades para $current_post e $post.<\/p><p class=\"wp-block-paragraph\">Aqui est&aacute; um exemplo de como esse m&eacute;todo se parece:<\/p><pre class=\"wp-block-preformatted\">&lt;?php\n\n\/\/ the query\n\n$the_query = new WP_Query( $args ); ?&gt;\n\n&lt;?php if ( $the_query-&gt;have_posts() ) : ?&gt;\n\n&nbsp;&nbsp;&nbsp;&lt;!-- pagination here --&gt;\n\n&nbsp;&nbsp;&nbsp;&lt;!-- the loop --&gt;\n\n&nbsp;&nbsp;&nbsp;&lt;?php while ( $the_query-&gt;have_posts() ) : $the_query-&gt;the_post(); ?&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h2&gt;&lt;?php the_title(); ?&gt;&lt;\/h2&gt;\n\n&nbsp;&nbsp;&nbsp;&lt;?php endwhile; ?&gt;\n\n&nbsp;&nbsp;&nbsp;&lt;!-- end of the loop --&gt;\n\n&nbsp;&nbsp;&nbsp;&lt;!-- pagination here --&gt;\n\n&nbsp;&nbsp;&nbsp;&lt;?php wp_reset_postdata(); ?&gt;\n\n&lt;?php else : ?&gt;\n\n&nbsp;&nbsp;&nbsp;&lt;p&gt;&lt;?php _e( 'Sorry, no posts matched your criteria.' ); ?&gt;&lt;\/p&gt;\n\n&lt;?php endif; ?&gt;<\/pre><p class=\"wp-block-paragraph\">Em &uacute;ltima inst&acirc;ncia, voc&ecirc; deve adicionar este m&eacute;todo caso utilize a fun&ccedil;&atilde;o the_post() em sua query. Ela garante que as tags do template usem o post atual da query principal.&nbsp;<\/p><p class=\"wp-block-paragraph\">Abaixo indicamos alguns m&eacute;todos adicionais que podem ser usados para modificar as propriedades da sua WP_Query:<\/p><ul class=\"wp-block-list\">\n<li>get_posts &ndash; obt&eacute;m um conjunto de posts de acordo com as vari&aacute;veis definidas.&nbsp;<\/li>\n\n\n\n<li>have_posts &ndash; determina se os posts est&atilde;o dispon&iacute;veis no Loop.<\/li>\n\n\n\n<li>generate_postdata &ndash; exibe os posts.<\/li>\n\n\n\n<li>fill_query_vars &ndash; completa as vari&aacute;veis da query n&atilde;o est&atilde;o listadas nos par&acirc;metros.&nbsp;<\/li>\n<\/ul><p class=\"wp-block-paragraph\">A partir das informa&ccedil;&otilde;es e configura&ccedil;&otilde;es que voc&ecirc; definir, &eacute; poss&iacute;vel personalizar sua classe WP_Query para que ela execute a fun&ccedil;&atilde;o necess&aacute;ria em seu site. Esta &eacute; uma maneira flex&iacute;vel e segura de modificar as propriedades da classe.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"\/br\/hospedagem-wordpress\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-44638\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div><h2 class=\"wp-block-heading\" id=\"h-exemplos-de-wp-query\"><strong>Exemplos de WP_Query<\/strong><\/h2><p class=\"wp-block-paragraph\">Assim que voc&ecirc; aprender o b&aacute;sico do WordPress WP_Query, j&aacute; pode come&ccedil;ar a utilizar essa classe PHP para personalizar o design do seu site. J&aacute; que voc&ecirc; pode definir v&aacute;rios par&acirc;metros para isso, as op&ccedil;&otilde;es de customiza&ccedil;&atilde;o s&atilde;o quase infinitas.&nbsp;<\/p><p class=\"wp-block-paragraph\">Vamos discutir alguns dos exemplos mais comuns do uso do WP_Query para voc&ecirc; se inspirar!<\/p><h3 class=\"wp-block-heading\" id=\"h-1-posts-mais-recentes-de-uma-determinada-categoria\"><strong>1. Posts Mais Recentes de uma Determinada Categoria<\/strong><\/h3><p class=\"wp-block-paragraph\">Geralmente, os visitantes de sites est&atilde;o mais interessados em conte&uacute;dos novos. Depois que eles lerem um de seus posts, &eacute; importante que sua p&aacute;gina ofere&ccedil;a algum tipo de conte&uacute;do relacionado. Ao recomendar seus posts mais recentes, voc&ecirc; consegue direcionar os usu&aacute;rios para outros conte&uacute;dos que eles possam gostar.&nbsp;<\/p><p class=\"wp-block-paragraph\">H&aacute; diferentes formas de aprender a <a href=\"\/br\/tutoriais\/plugin-wordpress-posts-relacionados\/\"><strong>adicionar posts relacionados<\/strong><\/a> no WordPress, e com essa WP_Query, isso pode ser especialmente &uacute;til para sites que possuem posts sens&iacute;veis aos fatores de hor&aacute;rio e data. Por exemplo, um visitante pode ler um artigo cient&iacute;fico sobre perda de mem&oacute;ria. Utilizando a classe WP_Query, voc&ecirc; pode destacar t&oacute;picos similares com pesquisas atualizadas:&nbsp;<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/ZuPWvle6aQCpewHmfuusP2gAcviFKBb9TTFeVzgUX_X0xONLxub82REfaWtXbgOLOJOVDXh7g-24j7BWFvZgNHamjW7wjCuNEfdFmCUgSHRL9x7a3S0tpdKMNzmgC_NwQQFwY1YTzKL6S8ENhLJ-8ws\" alt=\"Exemplo de posts, da mesma categoria, recomendados na p&aacute;gina de leitura de um post espec&iacute;fico\"><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Se voc&ecirc; deseja exibir os posts mais recentes de uma categoria espec&iacute;fica, &eacute; poss&iacute;vel utilizar essa codifica&ccedil;&atilde;o em WP_Query:<\/p><pre class=\"wp-block-preformatted\">&lt;?php\n\n\/\/ Get the current post id.\n\n$current_post_id = get_the_ID();\n\n\/\/ Get the current post's category (first one if there's more than one).\n\n$current_post_cats = get_the_category();\n\n$current_post_first_cat_id = $current_post_cats[ 0 ]-&gt;term_id;\n\n\/\/ Setup arguments.\n\n$args = array(\n\n&nbsp;&nbsp;\/\/ Get category's posts.\n\n&nbsp;&nbsp;&nbsp;'cat' =&gt; $current_post_first_cat_id,\n\n&nbsp;&nbsp;\/\/ Exclude current post.\n\n&nbsp;&nbsp;&nbsp;'post__not_in' =&gt; array( $current_post_id )\n\n);\n\n\/\/ Instantiate new query instance.\n\n$my_query = new WP_Query( $args );\n\n?&gt;<\/pre><p class=\"wp-block-paragraph\">Depois de editar essa query com as informa&ccedil;&otilde;es de seu site (substituindo os respectivos dados), voc&ecirc; pode exibir posts similares ao que o visitante acabou de ler. Esse processo &eacute; capaz de guiar o usu&aacute;rio at&eacute; informa&ccedil;&otilde;es relevantes e atualizadas de forma eficiente, sem que ele precise pesquisar por elas.&nbsp;<\/p><h3 class=\"wp-block-heading\" id=\"h-2-posts-publicados-esta-semana\"><strong>2. Posts Publicados esta Semana<\/strong><\/h3><p class=\"wp-block-paragraph\">Se voc&ecirc; possui um p&uacute;blico dedicado, os leitores v&atilde;o querer ler seus novos artigos assim que eles forem publicados. Ao construir o design do seu site de forma que ele coloque os posts mais recentes em destaque, voc&ecirc; consegue oferecer a melhor experi&ecirc;ncia para o usu&aacute;rio, exibindo as informa&ccedil;&otilde;es mais relevantes para ele.<\/p><p class=\"wp-block-paragraph\">Especialmente caso voc&ecirc; tenha um site de not&iacute;cias, ser&aacute; necess&aacute;rio ordenar seus posts de mais recentes para mais antigos. Ao fazer isso, voc&ecirc; permite que os leitores encontrem conte&uacute;dos urgentes e relevantes de forma r&aacute;pida e f&aacute;cil.&nbsp;<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/axcCCEs6q5LdKhYMcT_69dR26JtIumIPAL083L-fasXmQSnU5tUWSmQ6WF14HNICuBJDsWJMrIT7oValIT2B8ZKjSZ9U_r7YnD5kqEv7fhzpmU7dMAHJjg2wlH-vwwpvtBXW7_c5_IxGN_hHspok5Ng\" alt=\"Exemplo de site em que a recomenda&ccedil;&atilde;o de posts &eacute; organizada pelos mais recentes\"><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Usando a classe WP_Query, voc&ecirc; pode definir par&acirc;metros baseados na data da publica&ccedil;&atilde;o. Por exemplo, Ao filtrar posts e exibir apenas aqueles publicados na &uacute;ltima semana, voc&ecirc; consegue evitar que os visitantes vejam artigos desatualizados:<\/p><pre class=\"wp-block-preformatted\">&lt;?php&nbsp;\n\n&nbsp;&nbsp;$arguments = array(\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"date_query\" =&gt; array(\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"year\" =&gt; date( \"Y\" ),\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"week\" =&gt; date( \"W\" ),\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)\n\n&nbsp;&nbsp;);\n\n&nbsp;&nbsp;$posts = new WP_Query($arguments);\n\n?&gt;<\/pre><p class=\"wp-block-paragraph\">Ao personalizar o par&acirc;metro date_query, voc&ecirc; &eacute; capaz de segmentar os posts publicados recentemente. Apesar de ser poss&iacute;vel incluir seus pr&oacute;prios valores personalizados para definir a data limite, pode ser mais eficiente destacar os artigos escritos nos &uacute;ltimos sete dias.&nbsp;<\/p><h3 class=\"wp-block-heading\" id=\"h-3-posts-populares-de-acordo-com-a-quantidade-de-comentarios\"><strong>3. Posts Populares de Acordo com a Quantidade de Coment&aacute;rios<\/strong><\/h3><p class=\"wp-block-paragraph\">De forma similar &agrave; anterior, voc&ecirc; pode promover os posts que o seu p&uacute;blico mais gostou. Ao informar aos usu&aacute;rios que certas publica&ccedil;&otilde;es receberam muito engajamento, voc&ecirc; pode encoraj&aacute;-los a clicar em tais posts para ver mais do conte&uacute;do.<\/p><p class=\"wp-block-paragraph\">J&aacute; que o WordPress n&atilde;o monitora a quantidade de visualiza&ccedil;&otilde;es dos seus posts, voc&ecirc; precisar&aacute; adicionar essa funcionalidade manualmente. Isso pode ser feito com um plugin, mas esse recurso adicional tamb&eacute;m pode desacelerar seu site.<\/p><p class=\"wp-block-paragraph\">Com a WP_Query, voc&ecirc; ainda pode sugerir aos leitores outros posts populares de acordo com o n&uacute;mero de coment&aacute;rios deles. Essa &eacute; uma boa maneira de exibir os artigos do seu site que os leitores mais gostaram:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/DxLTbHP6NYejoWId_VYdq64AdXKkfpRyl5hOemGXSiF0vht0IGt5wWvjbBl51K3-48NzD1FKpwrxr1MeblAFc83GDIJ3JFd-IGGxEtl8TkYi9WtfIhLQY0ijUHYU2GUf6aYUVii4rm_xdAbdWHtNmgQ\" alt=\"Exemplo de site em que a exibi&ccedil;&atilde;o da lista de posts recomendados &eacute; organizada em ordem de mais lidos\"><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Abaixo indicamos o c&oacute;digo que voc&ecirc; pode usar para estruturar suas recomenda&ccedil;&otilde;es de posts baseadas em popularidade:<\/p><pre class=\"wp-block-preformatted\">&lt;?php\n\n\/\/ Setup arguments.\n\n$args = array(\n\n&nbsp;&nbsp;\/\/ Order by comment count.\n\n&nbsp;&nbsp;&nbsp;'orderby' =&gt; 'comment_count'\n\n);\n\n\/\/ Instantiate new query instance.\n\n$my_query = new WP_Query( $args );\n\n?&gt;<\/pre><p class=\"wp-block-paragraph\">Voc&ecirc; tamb&eacute;m pode limitar ainda mais esses resultados a partir de uma certa categoria. Basta adicionar um par&acirc;metro com o nome da categoria desejada:<\/p><pre class=\"wp-block-preformatted\">&lt;?php&nbsp;\n\n&nbsp;&nbsp;$arguments = array(\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"category_name\" =&gt; \"fiction\",\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"orderby\" =&gt; \"comment_count\",\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"posts_per_page\" =&gt; 5,\n\n&nbsp;&nbsp;);\n\n&nbsp;&nbsp;$posts = new WP_Query($arguments);\n\n?&gt;<\/pre><p class=\"wp-block-paragraph\">Isso tamb&eacute;m vai limitar as recomenda&ccedil;&otilde;es em at&eacute; cinco posts. Se necess&aacute;rio, voc&ecirc; pode editar esse valor por um n&uacute;mero diferente e assim exibir a quantidade de posts que desejar.&nbsp;<\/p><h3 class=\"wp-block-heading\" id=\"h-4-posts-do-mesmo-autor-e-categoria\"><strong>4. Posts do Mesmo Autor e Categoria<\/strong><\/h3><p class=\"wp-block-paragraph\">Quando os visitantes leem um de seus blog posts, eles podem acabar gostando muito daquele conte&uacute;do. Por exemplo, eles podem simplesmente preferir o estilo de escrita daquele autor ou o t&oacute;pico do artigo em si.<\/p><p class=\"wp-block-paragraph\">Nesses casos, voc&ecirc; pode utilizar a classe WP_Query para oferecer recomenda&ccedil;&otilde;es de posts similares. Dessa forma, os visitantes conseguem clicar em artigos adicionais para continuar a leitura:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/WOYrMuzKRu1iHyeVHzHTJ_mQVLkbmVCOCXnz5UdZZpmQmiRU5EEpcVC8cL_b01qeke0RZlkK7mi-u3PmD66Y0r2qxK41ZZHZmXeJ8M3B7xqe8l_tlSYrf87QqlLRBF6EDHIc2oP1AOPsgGbY0R_8RAM\" alt=\"Exemplo de posts recomendados escritos pelo mesmo autor \"><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Para criar uma se&ccedil;&atilde;o de posts similares, voc&ecirc; precisar&aacute; implementar uma string WP_Query espec&iacute;fica. Ela ir&aacute; buscar por blog posts em seu site que possuam o mesmo autor ou autora e a mesma categoria.&nbsp;<\/p><p class=\"wp-block-paragraph\">Aqui est&aacute; o c&oacute;digo que voc&ecirc; pode utilizar:<\/p><pre class=\"wp-block-preformatted\">&lt;?php&nbsp;\n\n&nbsp;&nbsp;$arguments = array(\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"author_name\" =&gt; \"john\",\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"category_name\" =&gt; \"fiction\",\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"posts_per_page\" =&gt; 3,\n\n&nbsp;&nbsp;);\n\n&nbsp;&nbsp;$posts = new WP_Query($arguments);\n\n?&gt;<\/pre><p class=\"wp-block-paragraph\">Quando estiver implementando esse c&oacute;digo, voc&ecirc; dever&aacute; substituir <strong>&lsquo;john&rsquo; <\/strong>pelo nome do autor em quest&atilde;o. Do mesmo modo, delete a palavra <strong>&lsquo;fiction&rsquo; <\/strong>e inclua o nome da categoria desejada. Por fim, sinta-se &agrave; vontade para modificar a quantidade de recomenda&ccedil;&otilde;es de posts exibida na p&aacute;gina.&nbsp;<\/p><h3 class=\"wp-block-heading\" id=\"h-5-posts-anuais-de-um-autor-ou-autora\"><strong>5. Posts Anuais de um Autor ou Autora<\/strong><\/h3><p class=\"wp-block-paragraph\">Se voc&ecirc; possui um blog mais popular, provavelmente h&aacute; muitos autores diferentes escrevendo posts para ele. Depois de algum visitante ler um dos artigos de seu site, ele pode querer encontrar publica&ccedil;&otilde;es adicionais daquele autor.<\/p><p class=\"wp-block-paragraph\">Nesse caso, voc&ecirc; pode listar os posts escritos por um autor ou autora no &uacute;ltimo ano. Com esse m&eacute;todo, voc&ecirc; ainda pode dar aos visitantes mais informa&ccedil;&otilde;es sobre o autor e uma lista de suas publica&ccedil;&otilde;es anteriores:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/gzdhTaxf3kCQhWliH-9sHnPtz_KJPdXlOsK1CObkRtxy4jC4lENz2TjZcbGTsMATs_sz_Faxgyuc-fSgddCekBI51-GoK3lE4NT3WAXklrinueVW_0EGxWyW7cDqSxz4ScBXQxX4WIM_GRXhTsjd_S8\" alt=\"Exemplo de recomenda&ccedil;&atilde;o de posts baseada em publica&ccedil;&otilde;es do mesmo autor no &uacute;ltimo ano\"><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Para desenvolver uma lista com os posts anuais de um autor, &eacute; poss&iacute;vel utilizar essa WP_Query:<\/p><pre class=\"wp-block-preformatted\">&lt;?php\n\n\/\/ Get the year we're in.\n\n$current_year = date( 'Y' );\n\n\/\/ Setup arguments.\n\n$args = array(\n\n&nbsp;&nbsp;\/\/ Get the author with the nicename \"john\".\n\n&nbsp;&nbsp;&nbsp;'author' =&gt; 'john',\n\n&nbsp;&nbsp;\/\/ Get his posts from this year.\n\n&nbsp;&nbsp;&nbsp;'year' &nbsp; =&gt; $current_year\n\n);\n\n\/\/ Instantiate new query instance.\n\n$my_query = new WP_Query( $args );\n\n?&gt;<\/pre><p class=\"wp-block-paragraph\">Esses dados far&atilde;o a solicita&ccedil;&atilde;o ao banco de dados de todos os posts escritos por um autor ou autora espec&iacute;ficos. Al&eacute;m disso, os resultados tamb&eacute;m ser&atilde;o refinados a partir do ano atual. Desse modo, nenhum artigo publicado h&aacute; mais de um ano atr&aacute;s ser&aacute; exibido na lista.&nbsp;<\/p><h3 class=\"wp-block-heading\" id=\"h-6-previa-de-posts-agendados\"><strong>6. Pr&eacute;via de Posts Agendados<\/strong><\/h3><p class=\"wp-block-paragraph\">Para sua audi&ecirc;ncia dar uma espiadinha nos pr&oacute;ximos conte&uacute;dos a serem lan&ccedil;ados no blog, voc&ecirc; pode <a href=\"https:\/\/code.tutsplus.com\/pt\/tutorials\/mastering-wp_query-10-useful-examples--cms-22980\" target=\"_blank\" rel=\"noopener\"><strong>listar seus posts agendados<\/strong><\/a> no site. Usando a classe PHP WP_Query, voc&ecirc; pode exibir o t&iacute;tulo e trechos de seus futuros posts.&nbsp;&nbsp;<\/p><p class=\"wp-block-paragraph\">Isso ajuda a gerar interesse em seus artigos antes deles serem lan&ccedil;ados. Al&eacute;m do mais, &eacute; bastante simples implementar essa funcionalidade com WP_Query:<\/p><pre class=\"wp-block-preformatted\">&lt;?php\n\n\/*\n\n* Usage with Excerpts:\n\n*\n\n* &lt;?php echo tutsplus_show_drafts(); ?&gt;\n\n*\n\n* Usage without Excerpts:\n\n*\n\n* &lt;?php echo tutsplus_show_drafts( false ); ?&gt;\n\n*\/\n\nfunction tutsplus_show_drafts( $show_excerpts = true ) {\n\n&nbsp;&nbsp;\/\/ Setup arguments.\n\n&nbsp;&nbsp;&nbsp;$args = array(\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'post_status' =&gt; 'future',\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'nopaging' =&gt; true\n\n&nbsp;&nbsp;&nbsp;);\n\n&nbsp;&nbsp;\/\/ Instantiate new query instance.\n\n&nbsp;&nbsp;&nbsp;$my_query = new WP_Query( $args );\n\n&nbsp;&nbsp;\/\/ Check that we have query results.\n\n&nbsp;&nbsp;&nbsp;if ( $my_query-&gt;have_posts() ) {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Begin generating markup.\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output = '&lt;section class=\"pending-posts\"&gt;';\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Start looping over the query results.\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while ( $my_query-&gt;have_posts() ) {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$my_query-&gt;the_post();\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Output draft post title and excerpt (if enabled).\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output .= '&lt;div class=\"pending\"&gt;';\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output .= '&lt;h3 class=\"pending-title\"&gt;' . get_the_title() . '&lt;\/h3&gt;';\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output .= get_the_title();\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output .= '&lt;\/h3&gt;';\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( $show_excerpts ) {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output .= '&lt;div class=\"pending-excerpt\"&gt;';\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output .= get_the_excerpt();\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output .= '&lt;\/div&gt;';\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output .= '&lt;\/div&gt;';\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ End generating markup.\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output .= '&lt;\/section&gt;';\n\n&nbsp;&nbsp;&nbsp;} else {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Let user know that nothing was found.\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output = '&lt;section class=\"drafts-error\"&gt;';\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output .= '&lt;p&gt;' . __( 'Nothing found', 'tutsplus' ) . '&lt;\/p&gt;';\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output .= '&lt;\/section&gt;';\n\n&nbsp;&nbsp;&nbsp;}\n\n&nbsp;&nbsp;&nbsp;wp_reset_postdata();\n\n&nbsp;&nbsp;&nbsp;return $output;\n\n}\n\n?&gt;<\/pre><p class=\"wp-block-paragraph\">Esse c&oacute;digo ir&aacute; automaticamente configurar uma visualiza&ccedil;&atilde;o pr&eacute;via de seus posts agendados com o t&iacute;tulo deles. Voc&ecirc; tamb&eacute;m pode incluir um resumo ou trecho caso necess&aacute;rio.&nbsp;<\/p><h2 class=\"wp-block-heading\" id=\"h-conclusao\"><strong>Conclus&atilde;o<\/strong><\/h2><p class=\"wp-block-paragraph\">A <strong>WP_Query<\/strong> possibilita a realiza&ccedil;&atilde;o de solicita&ccedil;&otilde;es ao banco de dados WordPress de uma maneira simples. Utilizando essa classe PHP, voc&ecirc; pode personalizar a exibi&ccedil;&atilde;o do seu site e oferecer uma experi&ecirc;ncia &uacute;nica para cada visitante online.&nbsp;<\/p><p class=\"wp-block-paragraph\">Abaixo, relembramos as quatro formas com que voc&ecirc; pode usar a WP_Query no WordPress:<\/p><ul class=\"wp-block-list\">\n<li>Crie um Loop.<\/li>\n\n\n\n<li>Use argumentos da query.<\/li>\n\n\n\n<li>Defina par&acirc;metros espec&iacute;ficos.<\/li>\n\n\n\n<li>Modifique as propriedades da classe.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Quando estiver familiarizado e j&aacute; dominando essas t&eacute;cnicas de WordPress WP_Query, voc&ecirc; poder&aacute; recomendar posts espec&iacute;ficos baseados em popularidade, data, autor, categoria, e mais.&nbsp;<\/p><p class=\"wp-block-paragraph\">Caso ainda tenha quest&otilde;es adicionais quanto &agrave; WP_Query, fique &agrave; vontade para deixar um coment&aacute;rio na se&ccedil;&atilde;o abaixo. Lembre-se de utilizar uma <a href=\"https:\/\/www.hostinger.com\/br\/hospedagem-wordpress\"><strong>hospedagem com WordPress<\/strong><\/a> confi&aacute;vel para que seu site tenha o melhor desempenho poss&iacute;vel.<\/p><p class=\"wp-block-paragraph\">        <div class=\"protip\">\n            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    &lt;strong&gt;Aprenda mais T&eacute;cnicas Sobre o WordPress&lt;\/strong&gt;                <\/p>\n            <\/div>\n            <p class=\"protip__content\"><a href=\"\/br\/tutoriais\/tutorial-wordpress\/\"><strong>Tutorial WordPress Completo<\/strong><\/a><br><a href=\"\/br\/tutoriais\/como-localizar-e-substituir-texto-em-um-banco-de-dados-wordpress\/\"><strong>Como localizar e substituir texto em um banco de dados WordPress<\/strong><\/a><br><a href=\"\/br\/tutoriais\/mudar-url-wordpress-mysql-phpmyadmin\/\"><strong>Como mudar URLs no WordPress no banco de dados MySQL usando phpMyAdmin<\/strong><\/a><br><a href=\"\/br\/tutoriais\/criar-arquivo-htaccess-wordpress\/\"><strong>Como Localizar e Criar o Arquivo .htaccess do WordPress: Um Guia F&aacute;cil e R&aacute;pido<\/strong><\/a><\/p>\n                    <\/div>\n        <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Por padr&atilde;o, o WordPress automaticamente classifica seus posts dos mais recentes para os mais antigos. Ainda que os visitantes possam buscar por publica&ccedil;&otilde;es espec&iacute;ficas utilizando categorias e tags, eles podem n&atilde;o conseguir encontrar o conte&uacute;do que desejam. Para organizar seus posts e fazer uma curadoria para cada visitante, pode ser &uacute;til usar o WordPress WP_Query. [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/br\/tutoriais\/wp_query\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":305,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"","rank_math_description":"Neste tutorial voc\u00ea descobre o que \u00e9 a classe WP_query, como ela funciona e suas principais aplica\u00e7\u00f5es para personalizar e otimizar um site","rank_math_focus_keyword":"","footnotes":""},"categories":[4911],"tags":[7487],"class_list":["post-33474","post","type-post","status-publish","format-standard","hentry","category-wordpress","tag-wp_query"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/wordpress-wp_query\/","default":1},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp_query\/","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp_query-wordpress\/","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/wp_query-wordpress\/","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/basics-of-using-wordpress-wp_query-examples-with-code\/","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/basics-of-using-wordpress-wp_query-examples-with-code\/","default":0},{"locale":"en-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/wordpress-wp_query\/","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/wordpress-wp_query\/","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/wordpress-wp_query\/","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/wordpress-wp_query\/","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/wordpress-wp_query\/","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp_query-wordpress\/","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/wp_query-wordpress\/","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp_query-wordpress\/","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp_query\/","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/33474","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/users\/305"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/comments?post=33474"}],"version-history":[{"count":5,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/33474\/revisions"}],"predecessor-version":[{"id":37354,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/33474\/revisions\/37354"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media?parent=33474"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/categories?post=33474"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/tags?post=33474"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}