{"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>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>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>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\/public\" 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>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>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>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>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>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><\/div><p>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>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>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>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>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>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>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>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>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>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>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>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>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>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>Voc&ecirc; provavelmente reparou na linha ($args) no nosso exemplo anterior. Ali &eacute; onde voc&ecirc; ir&aacute; incluir seu query argument.<\/p><p>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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><\/div><h2 class=\"wp-block-heading\" id=\"h-exemplos-de-wp-query\"><strong>Exemplos de WP_Query<\/strong><\/h2><p>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>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>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>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><\/div><p>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>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>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>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><\/div><p>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>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>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>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>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><\/div><p>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>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>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>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>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><\/div><p>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>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>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>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>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><\/div><p>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>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>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>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>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>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>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>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>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>\n\n\n\n<div class=\"protip\">\n                    <h4 class=\"title\"><strong>Aprenda mais T&eacute;cnicas Sobre o WordPress<\/strong><\/h4>\n                    <p><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":0},{"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-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/wordpress-wp_query","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-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/basics-of-using-wordpress-wp_query-examples-with-code","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":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/que-es-una-url-8","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/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}],"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}]}}