{"id":808,"date":"2017-09-21T15:38:16","date_gmt":"2017-09-21T18:38:16","guid":{"rendered":"https:\/\/felipeelia.com.br\/?p=808"},"modified":"2019-02-15T18:38:25","modified_gmt":"2019-02-15T21:38:25","slug":"wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts","status":"publish","type":"post","link":"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/","title":{"rendered":"WordPress: o que voc\u00ea precisa saber sobre WP_Query e query_posts()"},"content":{"rendered":"

O WordPress \u00e9 um CMS e, por isso, a manipula\u00e7\u00e3o do conte\u00fado \u00e9 um dos principais pilares da ferramenta. Neste post voc\u00ea entender\u00e1 o processo usado pelo WP para buscar o que precisa ser exibido e tamb\u00e9m como \u00e9 poss\u00edvel alterar este processo.<\/p>\n

O objetivo deste texto n\u00e3o \u00e9 nem de longe substituir a documenta\u00e7\u00e3o oficial,\u00a0 que sempre deve ser consultada. Seu objetivo \u00e9 colocar em um s\u00f3 lugar o que os iniciantes devem saber\u00a0antes de come\u00e7ar a procurar por mais informa\u00e7\u00f5es.<\/p>\n

O que \u00e9 uma query do WordPress?<\/h2>\n

Query<\/em> em ingl\u00eas significa consulta e normalmente \u00e9 o termo usado para se referir a uma instru\u00e7\u00e3o em SQL (Structured Query Language, ou seja, Linguagem para Consultas Estruturadas). No WordPress chamamos de queries as consultas por conte\u00fados feitas atrav\u00e9s da classe WP_Query<\/a>.<\/p>\n

O que \u00e9 WP_Query?<\/h2>\n

WP_Query \u00e9 a classe PHP por tr\u00e1s de todas as buscas por conte\u00fado no WordPress.<\/strong> Ela aceita v\u00e1rios par\u00e2metros em sua constru\u00e7\u00e3o, incluindo post types<\/em>, meta dados, taxonomias e datas, al\u00e9m de possibilitar a cria\u00e7\u00e3o de par\u00e2metros personalizados.<\/p>\n

A classe WP_Query \u00e9 acionada em todas as requisi\u00e7\u00f5es feitas ao seu site, excetuando talvez rar\u00edssimas exce\u00e7\u00f5es de endere\u00e7os controlados por plugins que interrompam o fluxo normal. Toda vez que chamamos uma p\u00e1gina, um post, um termo de taxonomia e etc. o WordPress interpreta o endere\u00e7o pedido atrav\u00e9s da Rewrite API<\/a> e cria uma WP_Query baseada nos argumentos interpretados.<\/p>\n\n

Conditional Tags e WP_Query<\/h3>\n

Fun\u00e7\u00f5es como is_home<\/a>, is_front_page<\/a>, is_page<\/a>, is_search<\/a> e etc. s\u00e3o apenas chamadas simplificadas para $query->is_home()<\/code>, $query->is_front_page()<\/code> e assim por diante. Isto significa duas coisas: sem saber voc\u00ea esteve manipulando uma inst\u00e2ncia da classe WP_Query o tempo todo e que, se voc\u00ea\u00a0tiver uma vari\u00e1vel deste tipo, voc\u00ea tamb\u00e9m pode executar estes testes com elas.<\/p>\n

Criando seus pr\u00f3prios loops: WP_Query e get_posts()<\/h2>\n

Quando nos referimos ao Loop no WordPress<\/strong> estamos falando sobre itera\u00e7\u00e3o (sem o n) pelos posts selecionados. Normalmente s\u00f3 temos um loop, que sempre se assemelha ao c\u00f3digo abaixo:<\/p>\n

if( have_posts() ) {\n\twhile( have_posts() ) { the_post();\n\t\t\/\/ Estamos no loop\n\t\tthe_title(); \/\/ Exibe o t\u00edtulo. Esta fun\u00e7\u00e3o s\u00f3 deve ser usada dentro do Loop\n\t}\n}<\/code><\/pre>\n

Se existem posts, itere sobre eles. A primeira instru\u00e7\u00e3o dentro do while<\/code> \u00e9 the_post()<\/code>, que diz para o WordPress colocar as vari\u00e1veis do pr\u00f3ximo post do loop na vari\u00e1vel global $post<\/code>, atrav\u00e9s do m\u00e9todo setup_postdata()<\/code> da classe WP_Query.<\/p>\n

Esta \u00e9 a apar\u00eancia do loop principal<\/strong>, ou seja, da itera\u00e7\u00e3o pelo conjunto de posts que o WordPress encontrou ao decodificar a requisi\u00e7\u00e3o e buscar pelos conte\u00fados correspondentes<\/strong>. Se precisarmos de um outro conjunto de posts (conte\u00fado relacionado, conte\u00fados de uma determinada categoria fora de seu arquivo ou posts publicados depois do que est\u00e1 sendo exibido, por exemplo) podemos fazer isso de duas formas: criando um novo objeto WP_Query ou chamando a fun\u00e7\u00e3o get_posts()<\/a>. As duas fazem a mesma coisa, mas retornar\u00e3o para voc\u00ea coisas diferentes.<\/p>\n

Criando um loop com WP_Query<\/h2>\n

Um exemplo simples de como criar um loop com WP_Query:<\/p>\n

\/\/\/ vamos criar uma query para pegar 3 posts da categoria novidades:\n$minha_query = new WP_Query( array( \n\t'posts_per_page' => 3,\n\t'category_name' => 'novidades',\n) );\n\nif ( $minha_query->have_posts() ) {\n\techo '<ul>';\n\twhile ( $minha_query->have_posts() ) {\n\t\t$minha_query->the_post();\n\t\techo '<li>' . get_the_title() . '<\/li>';\n\t}\n\techo '<\/ul>';\n\twp_reset_postdata();\n} <\/code><\/pre>\n

Repare como o teste e a itera\u00e7\u00e3o sobre have_posts()<\/code> continuam l\u00e1, assim como the_post()<\/code>, mas dessa vez\u00a0como m\u00e9todos da vari\u00e1vel que criamos.<\/p>\n

A fun\u00e7\u00e3o wp_reset_postdata()<\/a>\u00a0serve para restaurar a vari\u00e1vel global $post<\/code> para seu estado anterior \u00e0 nossa query, ou seja, ela colocar\u00e1 de volta na global $post<\/code> o post da global $wp_query<\/code>, que veremos mais pra frente.<\/p>\n

Criando um loop com get_posts()<\/h2>\n

O mesmo exemplo usando a fun\u00e7\u00e3o get_posts()<\/code>:<\/p>\n

$novidades = get_posts( array( \n\t'posts_per_page' => 3,\n\t'category_name' => 'novidades',\n) );\n\nif ( count( $novidades ) ) {\n\techo '<ul>';\n\tforeach( $novidades as $novidade ) {\n\t\techo '<li>' . get_the_title( $novidade->ID ) . '<\/li>';\n\t}\n\techo '<\/ul>';\n}<\/code><\/pre>\n

A fun\u00e7\u00e3o get_the_title()<\/a> aceita como par\u00e2metro um post diferente do que est\u00e1 na vari\u00e1vel global $post<\/code>. Se voc\u00ea precisar usar a fun\u00e7\u00e3o the_content()<\/a>, por exemplo, ser\u00e1 preciso alterar a global, da seguinte forma:<\/p>\n

$novidades = get_posts( array( \n\t'posts_per_page' => 3,\n\t'category_name' => 'novidades',\n) );\n\nglobal $post;\nif ( count( $novidades ) ) {\n\techo '<ul>';\n\tforeach( $novidades as $post ) { \/\/ repare que $novidade virou $post\n\t\tsetup_postdata( $post );\n\t\techo '<li>';\n\t\tthe_title( '<h2>', '<\/h2>' ) ; \/\/ os par\u00e2metros de get_the_title e the_title s\u00e3o diferentes\n\t\tthe_content();\n\t\techo '<\/li>';\n\t}\n\twp_reset_postdata();\n\techo '<\/ul>';\n}<\/code><\/pre>\n

Diferen\u00e7a entre WP_Query e get_posts()<\/h2>\n

A diferen\u00e7a b\u00e1sica \u00e9 ao que voc\u00ea ter\u00e1 acesso. Usando WP_Query voc\u00ea tem acesso \u00e0 quantidade de posts encontrados no total ($query->found_posts<\/code>) e ao n\u00famero de p\u00e1ginas poss\u00edveis ($query->max_num_pages<\/code>), por exemplo. A fun\u00e7\u00e3o get_posts()<\/code> por outro lado traz alguns argumentos j\u00e1 preenchidos al\u00e9m de, por padr\u00e3o, ser ligeiramente mais r\u00e1pida: ela passa o par\u00e2metro no_found_rows<\/code> como verdadeiro, evitando que a query final tenha a op\u00e7\u00e3o SQL_CALC_FOUND_ROWS<\/code> e, com isso, dispensando o MySQL de passar a quantidade total de linhas encontradas.<\/p>\n

Globais $wp_query e $wp_the_query<\/h2>\n

Neste processo de interpretar a requisi\u00e7\u00e3o e gerar o objeto da classe WP_Query o WordPress cria duas vari\u00e1veis globais: $wp_query<\/code>, que provavelmente voc\u00ea j\u00e1 viu em algum lugar, e $wp_the_query<\/code>, que ser\u00e1 sempre a c\u00f3pia original do que foi solicitado pelo usu\u00e1rio. Se algu\u00e9m mexer em $wp_query<\/code>, pelo menos podemos recuper\u00e1-la ao seu estado normal com $wp_the_query<\/code>. \u00c9 exatamente isso que a fun\u00e7\u00e3o wp_reset_query()<\/a> faz.<\/p>\n

Por que n\u00e3o se deve usar query_posts() nos arquivos do tema?<\/h2>\n

Este aqui \u00e9 o fluxo padr\u00e3o de uma requisi\u00e7\u00e3o a um endere\u00e7o do seu site fora do painel:<\/p>\n

\"\"<\/p>\n

Voc\u00ea n\u00e3o deve usar query_posts()<\/a> porque ela j\u00e1 foi chamada antes. Ao cham\u00e1-la de novo voc\u00ea duplicar\u00e1 o processamento (pedindo ao WordPress que fa\u00e7a uma outra consulta) e, al\u00e9m disso, ignorar\u00e1 potencialmente o que alguns plugins j\u00e1 tenham usado.<\/p>\n

A pagina\u00e7\u00e3o \u00e9 outro exemplo de como usar query_posts()<\/code> pode atrapalhar o seu trabalho. Se voc\u00ea desejar exibir 15 posts por p\u00e1gina em uma determinada categoria e tentar sobrescrever a quantidade padr\u00e3o do WP atrav\u00e9s de query_posts()<\/code> voc\u00ea ter\u00e1 uma situa\u00e7\u00e3o onde a primeiro item da segunda p\u00e1gina deveria ser o 16\u00ba, mas na verdade \u00e9 s\u00f3 o 11\u00ba.<\/p>\n

Como alterar a query principal? Use pre_get_posts<\/h2>\n

Usar query_posts()<\/code> \u00e9 desaconselh\u00e1vel h\u00e1 algum tempo. De l\u00e1 pra c\u00e1, muitos tem explicado o porqu\u00ea e incentivado os desenvolvedores a usar a action pre_get_posts<\/a>, com destaque especial para o Leo Baiano<\/a>, que apelidou a action carinhosamente de preguetinho<\/em> (o uso de trocadilhos com o preguetinho do Leo Baiano est\u00e1 autorizado nos coment\u00e1rios).<\/p>\n

O uso \u00e9 simples. Para eliminar a pagina\u00e7\u00e3o na busca, por exemplo, voc\u00ea pode usar o seguinte c\u00f3digo no functions.php<\/code> do seu tema:<\/p>\n

function altera_query_principal ( $query ) {\n\tif ( ! is_admin() AND $query->is_main_query() AND $query->is_search() ) {\n\t\t$query->set( 'posts_per_page', -1 );\n\t}\n}\nadd_action( 'pre_get_posts', 'altera_query_principal' );<\/code><\/pre>\n

O c\u00f3digo atribui a sua fun\u00e7\u00e3o ao hook pre_get_posts<\/code>, ent\u00e3o sua fun\u00e7\u00e3o ser\u00e1 executada toda vez que uma query for processada<\/strong>. Dentro dela precisamos ter certeza de que vamos trabalhar apenas nas queries necess\u00e1rias, ent\u00e3o testamos se realmente estamos na\u00a0parte “da frente” do site (dessa forma n\u00e3o atrapalhamos nada do painel), se estamos na query principal da p\u00e1gina, isto \u00e9, se a query\u00a0em quest\u00e3o \u00e9 $wp_the_query<\/code> e se esta query \u00e9 de uma busca. Se isto tudo for verdade alteramos o atributo posts_per_page<\/code> para -1<\/code>, que significa n\u00e3o ter limite de posts.<\/p>\n

Outro exemplo: excluir uma categoria da lista de posts do blog<\/h3>\n
function excluir_categoria( $query ) {\n\tif ( ! is_admin() AND $query->is_main_query() AND $query->is_home() ) {\n\t\t$query->set( 'cat', '-1,-1347' ); \/\/ Use um sinal de menos e o id da categoria OU use tax_query\n\t}\n}\nadd_action( 'pre_get_posts', 'excluir_categoria' );<\/code><\/pre>\n

Se voc\u00ea precisar de muitas altera\u00e7\u00f5es voc\u00ea pode juntar todas em uma \u00fanica fun\u00e7\u00e3o:<\/p>\n

function altera_query_principal ( $query ) {\n\tif ( ! is_admin() AND $query->is_main_query() ) {\n\t\tif ( $query->is_search() )  {\n\t\t\t$query->set( 'posts_per_page', -1 );\n\t\t} elseif ( $query->is_home() ) {\n\t\t\t$query->set( 'cat', '-1,-1347' );\n\t\t} elseif ( $query->is_tax( 'portfolio' ) ) { \/\/ Exibe os posts por ordem alfab\u00e9tica no arquivo da taxonomia portfolio\n\t\t\t$query->set( 'orderby', 'title' );\n\t\t\t$query->set( 'order', 'ASC' );\n\t\t}\n\t}\n}\nadd_action( 'pre_get_posts', 'altera_query_principal' );<\/code><\/pre>\n

Conclus\u00e3o<\/h2>\n

Assim como os hooks, saber usar e manipular as queries do WordPress \u00e9 essencial para quem desenvolve<\/strong> no CMS. Se o post foi \u00fatil n\u00e3o esque\u00e7a de compartilhar e deixar seu coment\u00e1rio \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"

Entenda o processo usado pelo WP para buscar o que precisa ser exibido e tamb\u00e9m como \u00e9 poss\u00edvel alterar este processo.<\/p>\n","protected":false},"author":1,"featured_media":811,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[30],"tags":[],"yoast_head":"\nWordPress: o que voc\u00ea precisa saber sobre WP_Query e query_posts() | Felipe Elia<\/title>\n<meta name=\"description\" content=\"Entenda o processo usado pelo WP para buscar o que precisa ser exibido e tamb\u00e9m como \u00e9 poss\u00edvel alterar este processo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WordPress: o que voc\u00ea precisa saber sobre WP_Query e query_posts() | Felipe Elia\" \/>\n<meta property=\"og:description\" content=\"Entenda o processo usado pelo WP para buscar o que precisa ser exibido e tamb\u00e9m como \u00e9 poss\u00edvel alterar este processo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/\" \/>\n<meta property=\"og:site_name\" content=\"Felipe Elia\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/felipe.elia\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/felipe.elia\" \/>\n<meta property=\"article:published_time\" content=\"2017-09-21T18:38:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-02-15T21:38:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/felipeelia.dev\/wp-content\/uploads\/2017\/09\/query-posts.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Felipe Elia\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/felipeelia.com.br\/wp-content\/uploads\/2017\/09\/query-posts.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/felipe_elia\" \/>\n<meta name=\"twitter:site\" content=\"@felipe_elia\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Felipe Elia\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/\"},\"author\":{\"name\":\"Felipe Elia\",\"@id\":\"https:\/\/felipeelia.com.br\/#\/schema\/person\/927a99b6e1cde7fcf9f4f79a1638b292\"},\"headline\":\"WordPress: o que voc\u00ea precisa saber sobre WP_Query e query_posts()\",\"datePublished\":\"2017-09-21T18:38:16+00:00\",\"dateModified\":\"2019-02-15T21:38:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/\"},\"wordCount\":1193,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\/\/felipeelia.com.br\/#\/schema\/person\/927a99b6e1cde7fcf9f4f79a1638b292\"},\"articleSection\":[\"WordPress\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/\",\"url\":\"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/\",\"name\":\"WordPress: o que voc\u00ea precisa saber sobre WP_Query e query_posts() | Felipe Elia\",\"isPartOf\":{\"@id\":\"https:\/\/felipeelia.com.br\/#website\"},\"datePublished\":\"2017-09-21T18:38:16+00:00\",\"dateModified\":\"2019-02-15T21:38:25+00:00\",\"description\":\"Entenda o processo usado pelo WP para buscar o que precisa ser exibido e tamb\u00e9m como \u00e9 poss\u00edvel alterar este processo.\",\"breadcrumb\":{\"@id\":\"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/felipeelia.dev\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WordPress: o que voc\u00ea precisa saber sobre WP_Query e query_posts()\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/felipeelia.com.br\/#website\",\"url\":\"https:\/\/felipeelia.com.br\/\",\"name\":\"Felipe Elia\",\"description\":\"Programa\u00e7\u00e3o com WordPress de um jeito f\u00e1cil, do b\u00e1sico ao avan\u00e7ado\",\"publisher\":{\"@id\":\"https:\/\/felipeelia.com.br\/#\/schema\/person\/927a99b6e1cde7fcf9f4f79a1638b292\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/felipeelia.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/felipeelia.com.br\/#\/schema\/person\/927a99b6e1cde7fcf9f4f79a1638b292\",\"name\":\"Felipe Elia\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/felipeelia.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/felipeelia.dev\/wp-content\/uploads\/2023\/06\/avatar-400x400-1.jpg\",\"contentUrl\":\"https:\/\/felipeelia.dev\/wp-content\/uploads\/2023\/06\/avatar-400x400-1.jpg\",\"width\":400,\"height\":400,\"caption\":\"Felipe Elia\"},\"logo\":{\"@id\":\"https:\/\/felipeelia.com.br\/#\/schema\/person\/image\/\"},\"description\":\"Associate Director of Platform Engineering na 10up, WordPress Core Contributor, Global Polyglots Mentor na comunidade internacional do WordPress e Locale Manager na comunidade WordPress Brasil.\",\"sameAs\":[\"https:\/\/www.facebook.com\/felipe.elia\",\"https:\/\/www.instagram.com\/felipe.elia\/\",\"https:\/\/www.linkedin.com\/in\/felipeelia\/\",\"https:\/\/twitter.com\/https:\/\/twitter.com\/felipe_elia\",\"https:\/\/www.youtube.com\/channel\/UCD_26rOE3ClALcZreTkyIoQ\"],\"url\":\"https:\/\/felipeelia.com.br\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"WordPress: o que voc\u00ea precisa saber sobre WP_Query e query_posts() | Felipe Elia","description":"Entenda o processo usado pelo WP para buscar o que precisa ser exibido e tamb\u00e9m como \u00e9 poss\u00edvel alterar este processo.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/","og_locale":"pt_BR","og_type":"article","og_title":"WordPress: o que voc\u00ea precisa saber sobre WP_Query e query_posts() | Felipe Elia","og_description":"Entenda o processo usado pelo WP para buscar o que precisa ser exibido e tamb\u00e9m como \u00e9 poss\u00edvel alterar este processo.","og_url":"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/","og_site_name":"Felipe Elia","article_publisher":"https:\/\/www.facebook.com\/felipe.elia","article_author":"https:\/\/www.facebook.com\/felipe.elia","article_published_time":"2017-09-21T18:38:16+00:00","article_modified_time":"2019-02-15T21:38:25+00:00","og_image":[{"width":"1200","height":"630","url":"https:\/\/felipeelia.dev\/wp-content\/uploads\/2017\/09\/query-posts.jpg","type":"image\/jpeg"}],"author":"Felipe Elia","twitter_card":"summary_large_image","twitter_image":"https:\/\/felipeelia.com.br\/wp-content\/uploads\/2017\/09\/query-posts.jpg","twitter_creator":"@https:\/\/twitter.com\/felipe_elia","twitter_site":"@felipe_elia","twitter_misc":{"Escrito por":"Felipe Elia","Est. tempo de leitura":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/#article","isPartOf":{"@id":"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/"},"author":{"name":"Felipe Elia","@id":"https:\/\/felipeelia.com.br\/#\/schema\/person\/927a99b6e1cde7fcf9f4f79a1638b292"},"headline":"WordPress: o que voc\u00ea precisa saber sobre WP_Query e query_posts()","datePublished":"2017-09-21T18:38:16+00:00","dateModified":"2019-02-15T21:38:25+00:00","mainEntityOfPage":{"@id":"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/"},"wordCount":1193,"commentCount":4,"publisher":{"@id":"https:\/\/felipeelia.com.br\/#\/schema\/person\/927a99b6e1cde7fcf9f4f79a1638b292"},"articleSection":["WordPress"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/","url":"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/","name":"WordPress: o que voc\u00ea precisa saber sobre WP_Query e query_posts() | Felipe Elia","isPartOf":{"@id":"https:\/\/felipeelia.com.br\/#website"},"datePublished":"2017-09-21T18:38:16+00:00","dateModified":"2019-02-15T21:38:25+00:00","description":"Entenda o processo usado pelo WP para buscar o que precisa ser exibido e tamb\u00e9m como \u00e9 poss\u00edvel alterar este processo.","breadcrumb":{"@id":"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/felipeelia.com.br\/wordpress-o-que-voce-precisa-saber-sobre-wp_query-e-query_posts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/felipeelia.dev\/"},{"@type":"ListItem","position":2,"name":"WordPress: o que voc\u00ea precisa saber sobre WP_Query e query_posts()"}]},{"@type":"WebSite","@id":"https:\/\/felipeelia.com.br\/#website","url":"https:\/\/felipeelia.com.br\/","name":"Felipe Elia","description":"Programa\u00e7\u00e3o com WordPress de um jeito f\u00e1cil, do b\u00e1sico ao avan\u00e7ado","publisher":{"@id":"https:\/\/felipeelia.com.br\/#\/schema\/person\/927a99b6e1cde7fcf9f4f79a1638b292"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/felipeelia.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":["Person","Organization"],"@id":"https:\/\/felipeelia.com.br\/#\/schema\/person\/927a99b6e1cde7fcf9f4f79a1638b292","name":"Felipe Elia","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/felipeelia.com.br\/#\/schema\/person\/image\/","url":"https:\/\/felipeelia.dev\/wp-content\/uploads\/2023\/06\/avatar-400x400-1.jpg","contentUrl":"https:\/\/felipeelia.dev\/wp-content\/uploads\/2023\/06\/avatar-400x400-1.jpg","width":400,"height":400,"caption":"Felipe Elia"},"logo":{"@id":"https:\/\/felipeelia.com.br\/#\/schema\/person\/image\/"},"description":"Associate Director of Platform Engineering na 10up, WordPress Core Contributor, Global Polyglots Mentor na comunidade internacional do WordPress e Locale Manager na comunidade WordPress Brasil.","sameAs":["https:\/\/www.facebook.com\/felipe.elia","https:\/\/www.instagram.com\/felipe.elia\/","https:\/\/www.linkedin.com\/in\/felipeelia\/","https:\/\/twitter.com\/https:\/\/twitter.com\/felipe_elia","https:\/\/www.youtube.com\/channel\/UCD_26rOE3ClALcZreTkyIoQ"],"url":"https:\/\/felipeelia.com.br\/author\/admin\/"}]}},"uagb_featured_image_src":{"full":["https:\/\/felipeelia.com.br\/wp-content\/uploads\/2017\/09\/query-posts.jpg",1200,630,false],"thumbnail":["https:\/\/felipeelia.com.br\/wp-content\/uploads\/2017\/09\/query-posts-150x150.jpg",150,150,true],"medium":["https:\/\/felipeelia.com.br\/wp-content\/uploads\/2017\/09\/query-posts-300x158.jpg",300,158,true],"medium_large":["https:\/\/felipeelia.com.br\/wp-content\/uploads\/2017\/09\/query-posts-768x403.jpg",768,403,true],"large":["https:\/\/felipeelia.com.br\/wp-content\/uploads\/2017\/09\/query-posts-1024x538.jpg",1024,538,true],"1536x1536":["https:\/\/felipeelia.com.br\/wp-content\/uploads\/2017\/09\/query-posts.jpg",1200,630,false],"2048x2048":["https:\/\/felipeelia.com.br\/wp-content\/uploads\/2017\/09\/query-posts.jpg",1200,630,false],"ocean-thumb-m":["https:\/\/felipeelia.com.br\/wp-content\/uploads\/2017\/09\/query-posts.jpg",600,315,false],"ocean-thumb-ml":["https:\/\/felipeelia.com.br\/wp-content\/uploads\/2017\/09\/query-posts.jpg",800,420,false],"ocean-thumb-l":["https:\/\/felipeelia.com.br\/wp-content\/uploads\/2017\/09\/query-posts.jpg",1200,630,false],"yarpp-thumbnail":["https:\/\/felipeelia.com.br\/wp-content\/uploads\/2017\/09\/query-posts.jpg",120,63,false]},"uagb_author_info":{"display_name":"Felipe Elia","author_link":"https:\/\/felipeelia.com.br\/author\/admin\/"},"uagb_comment_info":4,"uagb_excerpt":"Entenda o processo usado pelo WP para buscar o que precisa ser exibido e tamb\u00e9m como \u00e9 poss\u00edvel alterar este processo.","_links":{"self":[{"href":"https:\/\/felipeelia.com.br\/wp-json\/wp\/v2\/posts\/808"}],"collection":[{"href":"https:\/\/felipeelia.com.br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/felipeelia.com.br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/felipeelia.com.br\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/felipeelia.com.br\/wp-json\/wp\/v2\/comments?post=808"}],"version-history":[{"count":0,"href":"https:\/\/felipeelia.com.br\/wp-json\/wp\/v2\/posts\/808\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/felipeelia.com.br\/wp-json\/wp\/v2\/media\/811"}],"wp:attachment":[{"href":"https:\/\/felipeelia.com.br\/wp-json\/wp\/v2\/media?parent=808"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/felipeelia.com.br\/wp-json\/wp\/v2\/categories?post=808"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/felipeelia.com.br\/wp-json\/wp\/v2\/tags?post=808"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}