{"id":41315,"date":"2023-11-13T12:22:49","date_gmt":"2023-11-13T15:22:49","guid":{"rendered":"\/tutoriais\/?p=41315"},"modified":"2026-03-10T13:00:26","modified_gmt":"2026-03-10T16:00:26","slug":"get_posts","status":"publish","type":"post","link":"\/pt\/tutoriais\/get_posts","title":{"rendered":"O que \u00e9 a fun\u00e7\u00e3o get_posts do WordPress e como us\u00e1-la para criar listas de posts em PHP"},"content":{"rendered":"<?xml encoding=\"utf-8\" ?><p>Com a fun&ccedil;&atilde;o <strong>get_posts&nbsp;<\/strong> do WordPress, voc&ecirc; consegue recuperar posts, p&aacute;ginas e tipos de posts personalizados com base nos par&acirc;metros fornecidos. Ela filtra os posts de acordo com crit&eacute;rios estabelecidos como data, autor, tipo, permiss&atilde;o ou meta key.<\/p><p>Voc&ecirc; pode usar essa fun&ccedil;&atilde;o para mostrar conte&uacute;dos relevantes aos seus usu&aacute;rios rapidamente. Por exemplo, &eacute; poss&iacute;vel exibir listas de posts mais comentados, do mesmo autor, ou de uma mesma categoria.<\/p><p>Neste artigo, vamos explicar a fun&ccedil;&atilde;o <strong>get_posts&nbsp;<\/strong> do WordPress, seus par&acirc;metros e objetos. Voc&ecirc; tamb&eacute;m aprender&aacute; como usar essa fun&ccedil;&atilde;o para criar consultas personalizadas para diversas tarefas.<\/p><p>\n\n\n\n<\/p><p><\/p><p><div class=\"protip\">\n                    <h2 class=\"featured-snippet title\">O Que &eacute; a Fun&ccedil;&atilde;o get_posts do WordPress?<\/h2>\n                    <p>A fun&ccedil;&atilde;o <strong>get_posts<\/strong> do WordPress &eacute; um recurso que te deixa consultar posts com base em determinados par&acirc;metros, como a data de publica&ccedil;&atilde;o, autor, tipo, permiss&atilde;o ou meta key.<\/p><p>Os desenvolvedores do WordPress usam essa fun&ccedil;&atilde;o para encontrar mais rapidamente publica&ccedil;&otilde;es que correspondem aos crit&eacute;rios fornecidos. Por exemplo, eles podem exibir listas de posts mais visualizados, da mesma data de publica&ccedil;&atilde;o, ou de uma mesma categoria.<\/p>\n                <\/div>\n\n\n\n<\/p><h3 class=\"wp-block-heading\" id=\"h-como-o-get-posts-do-wordpress-funciona\">Como o get_posts do WordPress Funciona?<\/h3><p>A fun&ccedil;&atilde;o <strong>get_posts&nbsp;<\/strong>transforma o c&oacute;digo PHP em consultas SQL para buscar dados de posts do seu banco de dados. Essas consultas s&atilde;o baseadas nos par&acirc;metros que voc&ecirc; forneceu &mdash; os crit&eacute;rios para filtrar os posts.<\/p><p>Para construir as consultas SQL, essa fun&ccedil;&atilde;o do WordPress usa a classe <strong>WP_query&nbsp;<\/strong>. Ap&oacute;s processar as consultas, o banco de dados retornar&aacute; um array de resultados <strong>&nbsp;WP_post&nbsp;<\/strong>, cada um representando um objeto de post individual.<\/p><p><div><p class=\"important\"><strong>Importante!<\/strong> Nesse caso, <strong>posts<\/strong> aqui se referem a publica&ccedil;&otilde;es, p&aacute;ginas e tipos de posts personalizados do WordPress.<\/p><\/div>\n\n\n\n<\/p><p>O <strong>WP_query<\/strong> tamb&eacute;m pode puxar o conte&uacute;do do post do banco de dados WordPress e exibi-lo no navegador. Por&eacute;m, ele alterar&aacute; o loop do WordPress, o que pode causar problemas caso n&atilde;o o redefinirmos ap&oacute;s executar uma consulta.<\/p><p>J&aacute; a fun&ccedil;&atilde;o <strong>get_posts&nbsp;<\/strong>reinicia automaticamente o loop sempre que voc&ecirc; executa uma consulta no WordPress. Ela permite que voc&ecirc; envie m&uacute;ltiplas consultas de posts para o banco de dados do WordPress facilmente.<\/p><p><div class=\"protip\">\n                    <h4 class=\"title\">Sugest&atilde;o de Leitura<\/h4>\n                    <p>Confira nossos outros tutoriais do WordPress:<br>\n<a href=\"\/pt\/tutoriais\/plugin-wordpress-posts-relacionados\">Como Adicionar Posts Relacionados no WordPress<\/a> <a href=\"\/pt\/tutoriais\/como-agendar-posts-no-wordpress\">Como Agendar Posts no WordPress<\/a><\/p>\n                <\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-parametros-da-funcao-get-posts-do-wordpress\">Par&acirc;metros da Fun&ccedil;&atilde;o get_posts do WordPress<\/h2><p>A fun&ccedil;&atilde;o <strong>get_posts&nbsp;<\/strong> tem v&aacute;rios par&acirc;metros para aplicar filtros personalizados. Alguns dos par&acirc;metros mais utilizados no n&uacute;cleo do WordPress s&atilde;o:<\/p><ul class=\"wp-block-list\">\n<li><strong>Numberposts&nbsp;<\/strong>: define o n&uacute;mero de posts que a fun&ccedil;&atilde;o ir&aacute; recuperar. O valor padr&atilde;o desse par&acirc;metro &eacute; cinco.<\/li>\n\n\n\n<li><strong>Category<\/strong>: determina a categoria dos posts recuperados.<\/li>\n\n\n\n<li><strong>Include<\/strong>: define os IDs de post que voc&ecirc; deseja incluir nos resultados da consulta.<\/li>\n\n\n\n<li><strong>Exclude<\/strong>: especifica os IDs dos posts que voc&ecirc; deseja excluir dos resultados da consulta.<\/li>\n\n\n\n<li><strong>Post_type&nbsp;<\/strong>: filtra o tipo de objeto de post que sua consulta personalizada recuperar&aacute;. Pode ser posts, p&aacute;ginas ou um tipo de post personalizado.<\/li>\n\n\n\n<li><strong>Post_status&nbsp;<\/strong>: determina se a sua consulta retornar&aacute; rascunhos, posts privados ou publicados.<\/li>\n\n\n\n<li><strong>Order&nbsp;<\/strong>: classifica os posts recuperados em ordem crescente ou decrescente.<\/li>\n\n\n\n<li><strong>Orderby&nbsp;<\/strong>: define os crit&eacute;rios de ordena&ccedil;&atilde;o, como a data da publica&ccedil;&atilde;o ou o n&uacute;mero de coment&aacute;rios. Para recuperar posts aleat&oacute;rios com esse par&acirc;metro, use <strong>rand<\/strong>.<\/li>\n\n\n\n<li><strong>Post_mime_type&nbsp;<\/strong> &ndash; consulta tipos de posts em anexo com base nos par&acirc;metros do tipo MIME.<\/li>\n\n\n\n<li><strong>Suppress_filters<\/strong>: determina se os filtros devem ser suprimidos para que a consulta n&atilde;o possa ser alterada. Esse par&acirc;metro &eacute; definido por padr&atilde;o como&nbsp;<strong>TRUE<\/strong>.<\/li>\n<\/ul><p>Sem os par&acirc;metros personalizados, a fun&ccedil;&atilde;o <strong>get_posts <\/strong>recuperar&aacute;, por padr&atilde;o, os posts mais recentes. Por isso, voc&ecirc; precisa anexar um array de posts&nbsp;<strong>objeto<\/strong> &agrave; fun&ccedil;&atilde;o e especificar os argumentos para filtrar os posts usando a seguinte sintaxe:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$example_array = get_posts($arguments);\n\n$arguments = array(\n\n\"parameter_1\" =&gt; value,\n\n\"parameter_2\" =&gt; value\n\n);<\/pre><h3 class=\"wp-block-heading\" id=\"h-objetos-wp-posts\">Objetos WP_Posts<\/h3><p>A fun&ccedil;&atilde;o <strong>get_posts <\/strong>do WordPress retorna um array de <strong>post <\/strong>objetos com v&aacute;rias informa&ccedil;&otilde;es sobre os posts do seu site. Algumas das propriedades comuns do<strong> post<\/strong> objeto s&atilde;o:<\/p><ul class=\"wp-block-list\">\n<li><strong>ID<\/strong>: o n&uacute;mero de identifica&ccedil;&atilde;o do post.<\/li>\n\n\n\n<li><strong>post_author&nbsp;<\/strong>: o n&uacute;mero de ID do usu&aacute;rio do autor do post.<\/li>\n\n\n\n<li><strong>post_title<\/strong>: o t&iacute;tulo do post.<\/li>\n\n\n\n<li><strong>post_date<\/strong>: a data de publica&ccedil;&atilde;o do post no formato AAAA-MM-DD.<\/li>\n\n\n\n<li><strong>post_content<\/strong>: o conte&uacute;do do post.<\/li>\n\n\n\n<li><strong>post _status<\/strong> &ndash; o status atual do post recuperado, por exemplo, publicado ou em rascunho.<\/li>\n\n\n\n<li><strong>post_modified<\/strong> &ndash; a data da &uacute;ltima modifica&ccedil;&atilde;o do post.<\/li>\n\n\n\n<li><strong>comment_count<\/strong>&ndash; o n&uacute;mero de coment&aacute;rios no post.<\/li>\n<\/ul><p>Use <strong>foreach <\/strong>para percorrer os arrays de posts e <strong>echo <\/strong>para exibi-los. Veja o exemplo de estrutura do c&oacute;digo abaixo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">foreach($example_array as $post)\n\n{\n\necho \"&lt;h1&gt;\" . $post-&gt;post_title . \"&lt;\/h1&gt;&lt;br&gt;\";\n\n}<\/pre><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"413\" src=\"https:\/\/blog.hostinger.io\/br-tutoriais\/wp-content\/uploads\/sites\/53\/2023\/11\/image-1024x413.png\" alt=\"Painel de controle da Hostinger com o Gerenciador de arquivos destacado\" class=\"wp-image-41334\" srcset=\"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2023\/11\/image-1024x413.png 1024w, https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2023\/11\/image-300x121.png 300w, https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2023\/11\/image-150x60.png 150w, https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2023\/11\/image-768x310.png 768w, https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2023\/11\/image.png 1444w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Para mostrar os resultados em qualquer p&aacute;gina, adicione a fun&ccedil;&atilde;o <strong>get_posts <\/strong>&nbsp;a um template de <a href=\"\/pt\/tutoriais\/como-criar-o-tema-filho-wordpress\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>tema filho<\/strong><\/a>. Outra alternativa &eacute; inclu&iacute;-la no arquivo&nbsp;<strong>blog.php<\/strong>&nbsp;para mostrar os resultados em uma p&aacute;gina de blog. Nos <a href=\"\/pt\/hospedagem-wordpress\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>planos WordPress da Hostinger<\/strong><\/a>, esses arquivos podem ser facilmente acessados pelo <strong>Gerenciador de Arquivos<\/strong>.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"\/pt\/alojamento-wordpress\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/blog.hostinger.io\/pt-tutoriais\/wp-content\/uploads\/sites\/26\/2024\/06\/BR-New-WP_in-text-banner.png\" alt=\"\" class=\"wp-image-44638\" srcset=\"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2024\/06\/BR-New-WP_in-text-banner.png 1024w, https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2024\/06\/BR-New-WP_in-text-banner-300x88.png 300w, https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2024\/06\/BR-New-WP_in-text-banner-150x44.png 150w, https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-content\/uploads\/sites\/26\/2024\/06\/BR-New-WP_in-text-banner-768x225.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div><h2 class=\"wp-block-heading\" id=\"h-como-usar-a-funcao-get-posts-no-wordpress\">Como Usar a Fun&ccedil;&atilde;o get_posts no WordPress<\/h2><p>Devido &agrave; sua variedade de par&acirc;metros, a fun&ccedil;&atilde;o <strong>get_posts<\/strong> do WordPress pode ser usada em diversos casos. Nesta se&ccedil;&atilde;o, vamos explicar os casos mais comuns.<\/p><h3 class=\"wp-block-heading\" id=\"h-como-obter-os-posts-mais-populares\">Como Obter os Posts Mais Populares<\/h3><p>Alguns sites WordPress t&ecirc;m widgets que mostram os posts mais populares. Para habilit&aacute;-los, use <strong>get_posts <\/strong>para consultar um array de IDs de posts com base no n&uacute;mero de coment&aacute;rios:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\n$arguments = array(\n\n\"orderby\" =&gt; \"comment_count\",\n\n\"posts_per_page\" =&gt; 10\n\n);\n\n$posts_array = get_posts($arguments);\n\nforeach($posts_array as $post)\n\n{\n\necho \"&lt;h1&gt;\" . $post-&gt;post_title . \"&lt;\/h1&gt;&lt;br&gt;\";\n\necho \"&lt;p&gt;\" . $post-&gt;post_ID . \"&lt;\/p&gt;&lt;br&gt;\";\n\n}\n\n?&gt;<\/pre><p>No exemplo acima, especificamos argumentos que cont&ecirc;m um array de par&acirc;metros que v&atilde;o filtrar os posts consultados. Nesse caso, usamos o par&acirc;metro <strong>orderby&nbsp;<\/strong> para ordenar os posts com base no n&uacute;mero de coment&aacute;rios.<\/p><p>Tamb&eacute;m usamos&nbsp;<strong>post_per_page&nbsp;<\/strong> para limitar para&nbsp;<strong>10<\/strong> o valor de publica&ccedil;&otilde;es exibidas por p&aacute;gina. Em seguida, criamos um array que chama a fun&ccedil;&atilde;o<strong> get_posts<\/strong>, a qual usa<strong> $arguments <\/strong>para filtrar os posts.<\/p><p>Assim que a fun&ccedil;&atilde;o recupera os posts, o m&eacute;todo <strong>foreach <\/strong>cria um loop nos resultados. Ent&atilde;o, a fun&ccedil;&atilde;o <strong>echo&nbsp;<\/strong> exibe o ID e o t&iacute;tulo do post recuperado.<\/p><h3 class=\"wp-block-heading\" id=\"h-como-ver-posts-por-autor\">Como Ver Posts por Autor<\/h3><p>Se seu site WordPress tem v&aacute;rios autores, procurar manualmente os posts de um autor espec&iacute;fico pode ser um processo demorado e n&atilde;o muito pr&aacute;tico. Uma maneira mais r&aacute;pida de fazer isso &eacute; usar o par&acirc;metro <strong>author<\/strong> para filtrar os posts:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\n$arguments = array(\n\n\"numberposts\" =&gt; -1,\n\n\"author\" =&gt; 2\n\n);\n\n$sample_array = get_posts($arguments);\n\nforeach($sample_array as $post)\n\n{\n\necho \"&lt;h3&gt; \" . $post-&gt;post_title . \"&lt;\/h3&gt;\";\n\necho \"&lt;p&gt;\" . $post-&gt;post_date . \"&lt;\/p&gt;\";\n\n}\n\n?&gt;<\/pre><p>Nos argumentos, usamos dois par&acirc;metros: <strong>numberposts&nbsp;<\/strong>e&nbsp;<strong>author<\/strong>. O par&acirc;metro&nbsp;<strong>numberposts&nbsp;<\/strong>limitar&aacute; o n&uacute;mero de posts exibidos. Quando o definimos como<strong> -1<\/strong>, todas as publica&ccedil;&otilde;es ser&atilde;o recuperadas.<\/p><p>J&aacute; o par&acirc;metro <strong>author<\/strong> ir&aacute; filtrar os posts e mostrar somente as publica&ccedil;&otilde;es de um autor espec&iacute;fico com base no ID &mdash; neste caso, o ID do autor no exemplo que demos acima &eacute; <strong>2<\/strong>. Para consultar v&aacute;rios autores, especifique os IDs em uma lista separada por v&iacute;rgulas.<\/p><h3 class=\"wp-block-heading\" id=\"h-como-ver-posts-na-mesma-categoria\">Como Ver Posts na Mesma Categoria<\/h3><p>A fun&ccedil;&atilde;o&nbsp;<strong>get_posts<\/strong>&nbsp;do WordPress &eacute; muito usada para recuperar posts por categorias. Existem diferentes par&acirc;metros para realizar essa tarefa, sendo esses os mais comuns:<\/p><ul class=\"wp-block-list\">\n<li><strong>category<\/strong>: com base no ID da categoria.<\/li>\n\n\n\n<li><strong>category_name<\/strong>: usa o slug da categoria, como <strong>not&iacute;cias<\/strong> ou <strong>patrocinado<\/strong>.<\/li>\n\n\n\n<li><strong>category__and<\/strong>: consulta um array de v&aacute;rios IDs de categoria.<\/li>\n\n\n\n<li><strong>category_not_in&nbsp;<\/strong>: recupera posts de um ID de categoria exclu&iacute;da.<\/li>\n<\/ul><p>Independentemente do par&acirc;metro, a sintaxe &eacute; a mesma. A seguir mostraremos um exemplo de um trecho de c&oacute;digo para consultar posts de uma categoria com o ID de&nbsp;<strong>1<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\n$arguments = array(\n\n\"numberposts\" =&gt; -1,\n\n\"category\" =&gt; 1,\n\n\"orderby\" =&gt; \"date\",\n\n\"order\" =&gt; \"DESC\"\n\n);\n\n$category_array = get_posts($arguments);\n\nforeach($sample_array as $post)\n\n{\n\necho \"&lt;h3&gt; \" . $post-&gt;post_title . \"&lt;\/h3&gt;\";\n\necho \"&lt;p&gt;\" . $post-&gt;post_ID . \"&lt;\/p&gt;\";\n\n}\n\n?&gt;<\/pre><p>No exemplo, definimos o n&uacute;mero de posts para <strong>-1<\/strong> para mostrar todos eles e especificamos o ID da categoria como o filtro. N&oacute;s tamb&eacute;m usamos os par&acirc;metros <strong>orderby<\/strong> e <strong>order<\/strong> para classificar os posts consultados em ordem decrescente, com base nas datas de publica&ccedil;&atilde;o.<\/p><p>A fun&ccedil;&atilde;o <strong>get_posts<\/strong> exibir&aacute; posts em <strong>$category_array<\/strong> com base nos par&acirc;metros <strong>$arguments<\/strong>. Em seguida, o c&oacute;digo faz um loop nos resultados para exibir o ID e o t&iacute;tulo do post consultado.<\/p><p>Se voc&ecirc; deseja recuperar posts com v&aacute;rias categorias, substitua o par&acirc;metro<strong>&nbsp;category<\/strong> por&nbsp;<strong>category__and<\/strong>. Depois, use uma lista separada por v&iacute;rgulas de IDs de categoria como valor. Por exemplo, o c&oacute;digo a seguir exibir&aacute; posts com 1, 2 e 3 categorias:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"category__and\" =&amp;gt; array(\"1\",\"2\",\"3\")<\/pre><p>Os par&acirc;metros <strong>category<\/strong> e <strong>category_name <\/strong>tamb&eacute;m podem aceitar um array como valor. Diferente do <strong>category__and<\/strong>, eles recuperar&atilde;o posts de qualquer uma das categorias especificadas. Veja o exemplo abaixo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"category_name\" =&amp;gt; array(\"news\",\"archive\",\"sponsored\")<\/pre><p>Nesse exemplo, o c&oacute;digo mostrar&aacute; todas as publica&ccedil;&otilde;es que pertencem a uma ou mais das categorias especificadas. Se voc&ecirc; usar <strong>category__and<\/strong>, a fun&ccedil;&atilde;o mostrar&aacute; penas posts de todas as tr&ecirc;s categorias.<\/p><h3 class=\"wp-block-heading\" id=\"h-como-ver-posts-com-meta-keys-e-valor-correspondentes\">Como Ver Posts com Meta Keys e Valor Correspondentes<\/h3><p>Se seus posts do WordPress t&ecirc;m um campo personalizado, voc&ecirc; pode usar <strong>get_posts<\/strong> para recuper&aacute;-los de acordo com uma meta key e um valor correspondentes. Confira abaixo os par&acirc;metros importantes e suas fun&ccedil;&otilde;es:<\/p><ul class=\"wp-block-list\">\n<li><strong>meta_key<\/strong>: busca posts com base na chave do campo personalizado.<\/li>\n\n\n\n<li><strong>meta_value<\/strong>: consulta posts com base no valor da string da meta key.<\/li>\n\n\n\n<li><strong>meta_value_num<\/strong>: filtra posts semelhantes a <strong>meta_value<\/strong>, mas usa um valor num&eacute;rico.<\/li>\n\n\n\n<li><strong>meta_compare<\/strong>: aplica uma opera&ccedil;&atilde;o para testar o par&acirc;metro de valor meta.<\/li>\n<\/ul><p>Os usu&aacute;rios podem usar esses par&acirc;metros juntos para recuperar posts com uma meta key e um valor espec&iacute;ficos. Veja o exemplo abaixo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\n$arguments = array(\n\n\"numberposts\" =&gt; -1,\n\n\"meta_key\" =&gt; \"color\",\n\n\"meta_value\" =&gt; \"blue\",\n\n\"orderby\" =&gt; \"date\",\n\n\"order\" =&gt; \"ASC\"\n\n);\n\n$category_array = get_posts($arguments);\n\nforeach($sample_array as $post)\n\n{\n\necho \"&lt;h3&gt; \" . $post-&gt;post_title . \"&lt;\/h3&gt;\";\n\necho \"&lt;p&gt;\" . $post-&gt;post_date . \"&lt;\/p&gt;\";\n\n}\n\n?&gt;<\/pre><p>O c&oacute;digo do exemplo consulta todos os posts com o campo <strong>color<\/strong> personalizado com um valor <strong>blue<\/strong>. Se voc&ecirc; omitir o par&acirc;metro&nbsp;<strong>meta_key&nbsp;<\/strong>, ele recuperar&aacute; todos os posts com um valor<strong>&nbsp;blue<\/strong>, seja qual for o nome do campo personalizado desses posts. Por outro lado, a remo&ccedil;&atilde;o do <strong>meta_value<\/strong> exibir&aacute; os posts com o campo personalizado <strong>color<\/strong>, independentemente do valor atribu&iacute;do.<\/p><p>J&aacute; o <strong>meta_compare&nbsp;<\/strong> permite que voc&ecirc; especifique uma opera&ccedil;&atilde;o para modificar como a meta key e o valor atuam. Confira o trecho de c&oacute;digo a seguir:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\n$arguments = array(\n\n\"numberposts\" =&gt; -1,\n\n\"meta_key\" =&gt; \"color\",\n\n\"meta_value\" =&gt; \"blue\",\n\n\"meta_compare\" =&gt; \"!=\",\n\n);\n\n?&gt;<\/pre><p>Usamos o valor<strong>&nbsp;!=<\/strong>&nbsp;para excluir posts com o valor da meta key especificado. Portanto, ele mostrar&aacute; um array de posts que excluem aqueles com o valor meta <strong>blue<\/strong>. Recomendamos consultar a&nbsp;<a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_meta_query\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>documenta&ccedil;&atilde;o do WordPress<\/strong><\/a>&nbsp;(link em ingl&ecirc;s) para conseguir os valores completos de opera&ccedil;&atilde;o.<\/p><p>Voc&ecirc; tamb&eacute;m pode usar v&aacute;rios pares de meta key e valor para criar uma consulta mais espec&iacute;fica. Para isso, use o par&acirc;metro <strong>meta_query<\/strong> usando os arrays de filtro como valor. Depois, use a fun&ccedil;&atilde;o <strong>relation<\/strong> com o valor <strong>&nbsp;AND<\/strong> ou <strong>OR<\/strong> para estabelecer rela&ccedil;&otilde;es entre os arrays. Confira a sintaxe abaixo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\n$arguments = array(\n\n\"post_type\" =&gt; \"postname\",\n\n\"meta_query\" =&gt; array(\n\n\"relation\" =&gt; \"relation\",\n\narray(\n\n\"key\" =&gt; \"keyname\",\n\n\"value\" =&gt; \"keyvalue\",\n\n\"compare\" =&gt; \"operation\",\n\n),\n\narray(\n\n\"key\" =&gt; \"keyname\",\n\n\"value\" =&gt; \"keyvalue\",\n\n\"compare\" =&gt; \"operation\",\n\n),\n\n),\n\n);\n\n?&gt;<\/pre><h3 class=\"wp-block-heading\" id=\"h-como-ver-um-tipo-de-post-personalizado-com-taxonomia-personalizada\">Como Ver um Tipo de Post Personalizado com Taxonomia Personalizada<\/h3><p>A <a href=\"\/pt\/tutoriais\/taxonomia-wordpress\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Taxonomia do WordPress<\/strong><\/a> &eacute; um mecanismo que permite agrupar conte&uacute;do de acordo com suas rela&ccedil;&otilde;es ou caracter&iacute;sticas. As taxonomias padr&atilde;o para posts do WordPress s&atilde;o categoria e tag, mas voc&ecirc; pode criar novas taxonomias se precisar.<\/p><p>Se o seu site WordPress tiver um tipo de post personalizado, a taxonomia ajudar&aacute; a categorizar seu conte&uacute;do de forma mais espec&iacute;fica. Um tipo de post de filme, por exemplo, pode ter taxonomias personalizadas como g&ecirc;nero e data de lan&ccedil;amento.<\/p><p>A consulta de posts da mesma taxonomia usa uma fun&ccedil;&atilde;o similar &agrave; categoria. Use o nome da taxonomia personalizada como par&acirc;metro e especifique o nome do termo ou identificador como valor. Por exemplo, o trecho de c&oacute;digo abaixo ir&aacute; consultar um tipo de publica&ccedil;&atilde;o personalizada chamada <strong>filme<\/strong> (movie) para posts com o g&ecirc;nero <strong>cr&iacute;tica<\/strong> (review):<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\n$arguments = array(\n\n\"numberposts\" =&gt; -1,\n\n\"post_type\" =&gt; \"movie\",\n\n\"genre\" =&gt; \"review\",\n\n\"orderby\" =&gt; \"date\",\n\n\"order\" =&gt; \"ASC\"\n\n);\n\n$category_array = get_posts($arguments);\n\nforeach($sample_array as $post)\n\n{\n\necho \"&lt;h3&gt; \" . $post-&gt;post_title . \"&lt;\/h3&gt;\";\n\necho \"&lt;p&gt;\" . $post-&gt;post_date . \"&lt;\/p&gt;\";\n\n}\n\n?&gt;<\/pre><p>Voc&ecirc; tamb&eacute;m pode usar mais de um par&acirc;metro para criar uma consulta de post complexa com&nbsp;<strong>tax_query<\/strong>. Ele recebe um array de arrays como valor, cada um contendo os seguintes par&acirc;metros:<\/p><ul class=\"wp-block-list\">\n<li><strong>taxonomy<\/strong> : o nome da taxonomia.<\/li>\n\n\n\n<li><strong>field<\/strong>: o m&eacute;todo para selecionar o termo da taxonomia, seja com um ID, slug, ou nome. Ele usa o ID por padr&atilde;o.<\/li>\n\n\n\n<li><strong>terms<\/strong>: o termo de taxonomia conforme o campo (field). Para filtrar v&aacute;rias taxonomias, use um array como valor.<\/li>\n\n\n\n<li><strong>include_children<\/strong>: a regra que define se deve incluir a taxonomia filha. Esse par&acirc;metro &eacute; definido como <strong>TRUE<\/strong> por padr&atilde;o.<\/li>\n\n\n\n<li><strong>operator<\/strong>: a opera&ccedil;&atilde;o l&oacute;gica para os par&acirc;metros. Os valores incluem <strong>IN<\/strong>, <strong>NOT<\/strong> <strong>IN<\/strong>, <strong>AND<\/strong>, <strong>EXISTS<\/strong>, e <strong>NOT EXISTS<\/strong>.<\/li>\n<\/ul><p>Por exemplo, o c&oacute;digo a seguir ir&aacute; pesquisar posts com a tag <strong>John <\/strong>da taxonomia <strong>People<\/strong> (pessoas):<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\n$arguments = array(\n\n\"numberposts\" =&gt; -1,\n\n\"tax_query\" =&gt; array(\n\narray(\n\n\"taxonomy\" =&gt; \"people\",\n\n\"field\" =&gt; \"slug\",\n\n\"terms\" =&gt; \"John\",\n\n),\n\n),\n\n\"orderby\" =&gt; \"date\",\n\n\"order\" =&gt; \"ASC\"\n\n);\n\n?&gt;<\/pre><p>Para usar v&aacute;rias consultas de taxonomia, adicione outro array ao par&acirc;metro <strong>tax_query<\/strong>. Especifique tamb&eacute;m a rela&ccedil;&atilde;o entre os arrays usando os par&acirc;metros de <strong>relation<\/strong> com valores de <strong>AND<\/strong> ou <strong>OR<\/strong>. Confira a seguir um exemplo de array:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\n$arguments = array(\n\n\"tax_query\" =&gt; array(\n\n\"relation\" =&gt; \"AND\",\n\narray(\n\n\"taxonomy\" =&gt; \"movie_genre\",\n\n\"field\" =&gt; \"slug\",\n\n\"terms\" =&gt; array( \"thriller\", \"fantasy\" ),\n\n),\n\narray(\n\n\"taxonomy\" =&gt; \"actor\",\n\n\"field\" =&gt; \"term_id\",\n\n\"terms\" =&gt; array( 90, 105, 207 ),\n\n\"operator\" =&gt; \"NOT IN\",\n\n),\n\n),\n\n?&gt;<\/pre><h2 class=\"wp-block-heading\" id=\"h-conclusao\">Conclus&atilde;o<\/h2><p>Neste tutorial, vimos que a fun&ccedil;&atilde;o <strong>get_posts<\/strong> do WordPress &eacute; utilizada para recuperar uma matriz (array) de posts, p&aacute;ginas ou tipos de post personalizados do banco de dados, com base em par&acirc;metros de consulta espec&iacute;ficos. Ela &eacute; usada para exibir rapidamente posts que correspondem aos crit&eacute;rios fornecidos, como contagem de coment&aacute;rios ou meta keys.<\/p><p>Essa fun&ccedil;&atilde;o usa a classe<strong>&nbsp;WP_query&nbsp;<\/strong>para criar uma consulta SQL e envi&aacute;-la para o banco de dados do WordPress. O banco de dados ent&atilde;o retorna um array de objetos de&nbsp;<strong>post<\/strong> representando as publica&ccedil;&otilde;es do site.<\/p><p>Existem v&aacute;rios par&acirc;metros de <strong>get_posts<\/strong>, como <strong>numberposts<\/strong>, <strong>category<\/strong> e <strong>post_type<\/strong>. A fun&ccedil;&atilde;o tamb&eacute;m retorna objetos <strong>WP_posts<\/strong> que cont&ecirc;m dados do post, como <strong>ID<\/strong>, <strong>post_author<\/strong> e<strong>post_title<\/strong>.<\/p><p>Desenvolvedores usam a fun&ccedil;&atilde;o WordPress <strong>get_posts<\/strong> para diversas tarefas e cen&aacute;rios. Geralmente, essa fun&ccedil;&atilde;o pode ser usada para recuperar posts com o maior n&uacute;mero de coment&aacute;rios, o mesmo autor, categorias semelhantes e taxonomias personalizadas.<\/p><h2 class=\"wp-block-heading\" id=\"h-perguntas-frequentes-sobre-get-posts-do-wordpress\">Perguntas Frequentes sobre get_posts do WordPress<\/h2><p>Para ajudar voc&ecirc; a entender mais sobre a fun&ccedil;&atilde;o WordPress&nbsp;<strong>get_posts&nbsp;<\/strong>, vamos agora responder algumas das perguntas mais frequentes sobre o assunto.<\/p><div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-69441246196a9\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Qual &eacute; a Diferen&ccedil;a Entre get_posts e WP_query?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Ambos s&atilde;o m&eacute;todos para consultar e exibir posts do banco de dados do seu site. Por&eacute;m, a classe WP_query&nbsp; altera o loop do WordPress ap&oacute;s cada consulta, podendo causar erros se usada de maneira errada.u003cbr \/u003eu003cbr \/u003eJ&aacute; o m&eacute;todo get_posts&nbsp;reinicia automaticamente o loop ap&oacute;s exibir os posts solicitados, o que a torna menos propensa a erros e mais conveniente.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-69441246196ad\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Qual &eacute; a Diferen&ccedil;a Entre as Fun&ccedil;&otilde;es get_posts e get_pages?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>u003cbr \/u003eAo contr&aacute;rio da&nbsp;get_posts, a fun&ccedil;&atilde;o&nbsp;get_pages&nbsp;n&atilde;o usa a classe WP_query&nbsp;e consulta diretamente o banco de dados. Essas fun&ccedil;&otilde;es do WordPress tamb&eacute;m t&ecirc;m diferentes par&acirc;metros e informa&ccedil;&otilde;es recuperadas. Por exemplo, a get_pages&nbsp; n&atilde;o usa os par&acirc;metros de valor e meta key. Ela tamb&eacute;m consulta apenas p&aacute;ginas e tipos de posts hier&aacute;rquicos.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Com a fun&ccedil;&atilde;o get_posts&nbsp; do WordPress, voc&ecirc; consegue recuperar posts, p&aacute;ginas e tipos de posts personalizados com base nos par&acirc;metros fornecidos. Ela filtra os posts de acordo com crit&eacute;rios estabelecidos como data, autor, tipo, permiss&atilde;o ou meta key. Voc&ecirc; pode usar essa fun&ccedil;&atilde;o para mostrar conte&uacute;dos relevantes aos seus usu&aacute;rios rapidamente. Por exemplo, &eacute; poss&iacute;vel [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/pt\/tutoriais\/get_posts\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":270,"featured_media":49169,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"Fun\u00e7\u00e3o get_posts do WordPress: O Que \u00e9 e Como Us\u00e1-la %sep% %sitename% %page%","rank_math_description":"Aprenda o que \u00e9 a fun\u00e7\u00e3o get_posts e como us\u00e1-la para criar listas e filtragens de posts em PHP no WordPress.","rank_math_focus_keyword":"get_posts","footnotes":""},"categories":[4911],"tags":[7599],"class_list":["post-41315","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress","tag-get_posts-wordpress"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/get_posts-function-wordpress","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/get_posts","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/get_posts-funcion-wordpress","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/get_posts-function-wordpress","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/wordpress-get-posts-function","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/wordpress-get-posts-function","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/get_posts-funcion-wordpress","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/get_posts-funcion-wordpress","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/get_posts-funcion-wordpress","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/get_posts","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/get_posts-function-wordpress","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/get_posts-function-wordpress","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/get_posts-function-wordpress","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/get_posts-function-wordpress","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts\/41315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/users\/270"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/comments?post=41315"}],"version-history":[{"count":21,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts\/41315\/revisions"}],"predecessor-version":[{"id":49168,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts\/41315\/revisions\/49168"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/media\/49169"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/media?parent=41315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/categories?post=41315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/tags?post=41315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}