{"id":36820,"date":"2023-11-30T18:31:54","date_gmt":"2023-11-30T17:31:54","guid":{"rendered":"\/tutoriales\/?p=36820"},"modified":"2026-03-10T16:33:43","modified_gmt":"2026-03-10T15:33:43","slug":"get_posts-funcion-wordpress","status":"publish","type":"post","link":"\/ar\/tutoriales\/get_posts-funcion-wordpress","title":{"rendered":"Qu\u00e9 es la funci\u00f3n get_posts de WordPress y c\u00f3mo utilizarla para crear listas de entradas en PHP"},"content":{"rendered":"<p>La funci&oacute;n <strong>get_posts<\/strong> de WordPress te permite recuperar entradas, p&aacute;ginas y tipos de entradas personalizados en funci&oacute;n de unos par&aacute;metros dados. Funciona filtrando las entradas en funci&oacute;n de criterios como la fecha, el autor, el tipo, el permiso o la meta clave.<\/p><p>Los propietarios de sitios WordPress pueden utilizar esta funci&oacute;n para mostrar r&aacute;pidamente contenido relevante a los usuarios. Por ejemplo, pueden mostrar listas de entradas con el mayor n&uacute;mero de comentarios, el mismo autor o una categor&iacute;a similar.<\/p><p>En este art&iacute;culo, explicaremos la funci&oacute;n <strong>get_posts<\/strong> de WordPress, incluyendo sus par&aacute;metros y objetos. Tambi&eacute;n aprender&aacute;s a utilizarla para crear consultas personalizadas para diversas tareas.<\/p><p><div class=\"protip\">\n                    <h2 class=\"featured-snippet title\">&iquest;Qu&eacute; es la funci&oacute;n get_posts de WordPress?<\/h2>\n                    <p><\/p><p>La funci&oacute;n get_posts de WordPress es una funci&oacute;n que te permite consultar las entradas en funci&oacute;n de determinados par&aacute;metros, como la fecha de publicaci&oacute;n, el autor, el tipo, el permiso o la meta clave.<\/p><p>Los desarrolladores de WordPress la utilizan para encontrar r&aacute;pidamente entradas que coincidan con los criterios dados. Por ejemplo, pueden mostrar listas de entradas con el mayor n&uacute;mero de visitas, la misma fecha de publicaci&oacute;n o una categor&iacute;a similar.<\/p>\n                <\/div><\/p><h2 class=\"wp-block-heading\" id=\"h-como-funciona-get-posts-de-wordpress\">&iquest;C&oacute;mo funciona get_posts de WordPress?<\/h2><p>La funci&oacute;n <strong>get_posts<\/strong> de WordPress convierte el c&oacute;digo PHP en consultas SQL para obtener los datos de las entradas de tu base de datos. Estas consultas se basan en los par&aacute;metros proporcionados: los criterios para filtrar las entradas.<\/p><p>Para construir las consultas SQL, esta funci&oacute;n de WordPress utiliza la clase <strong>WP_query<\/strong>. Tras procesar las consultas, la base de datos devolver&aacute; una matriz de resultados <strong>WP_post<\/strong>, cada uno de los cuales representa un objeto de entrada individual.<\/p><p><div><p class=\"important\"><strong>&iexcl;Importante!<\/strong> En este caso, las entradas se refieren a entradas, p&aacute;ginas y tipos de entrada personalizados de WordPress<\/p><\/div>\n\n\n\n<\/p><p><strong>WP_query<\/strong> tambi&eacute;n puede extraer contenido de entradas de la base de datos de WordPress y mostrarlo en el navegador web. Sin embargo, alterar&aacute; el<a href=\"\/ar\/tutoriales\/loop-wordpress\"> loop de WordPress<\/a>, causando problemas si no lo restableces despu&eacute;s de ejecutar una consulta.<\/p><p>Mientras tanto, la funci&oacute;n <strong>get_posts<\/strong> reinicia autom&aacute;ticamente el loop cada vez que ejecutas una consulta a WordPress. Te permite enviar m&uacute;ltiples consultas de entradas a la base de datos de WordPress sin problemas.<\/p><p><div class=\"protip\">\n                    <h4 class=\"title\">Lectura recomendada<\/h4>\n                    <p>Consulta este otro tutorial sobre WordPress:<br>\n<a href=\"\/ar\/tutoriales\/programar-entradas-wordpress\">C&oacute;mo programar entradas en WordPress<\/a>.<\/p>\n                <\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-parametros-de-la-funcion-get-posts-de-wordpress\">Par&aacute;metros de la funci&oacute;n get_posts de WordPress<\/h2><p>La funci&oacute;n <strong>get_posts<\/strong> tiene varios par&aacute;metros para aplicar filtros personalizados. Algunos de los par&aacute;metros m&aacute;s utilizados en el n&uacute;cleo de WordPress son:<\/p><ul class=\"wp-block-list\">\n<li><strong>Numberposts<\/strong>: establece el n&uacute;mero de entradas que recuperar&aacute; la funci&oacute;n. El valor por defecto es cinco.<\/li>\n\n\n\n<li><strong>Categor&iacute;a<\/strong>: determina la categor&iacute;a de las entradas recuperadas.<\/li>\n\n\n\n<li><strong>Incluir<\/strong>: define los ID de las entradas que quieres incluir en los resultados de la consulta.<\/li>\n\n\n\n<li><strong>Excluir<\/strong>: especifica los ID de entrada que quieres excluir de los resultados de la consulta.<\/li>\n\n\n\n<li><strong>Post_type<\/strong>: filtra el tipo de objeto de entrada que recuperar&aacute; tu consulta personalizada. Pueden ser entradas, p&aacute;ginas o un tipo de entrada personalizado.<\/li>\n\n\n\n<li><strong>Post_status<\/strong>: afecta a si tu consulta devolver&aacute; publicaciones en borrador, privadas o publicadas.<\/li>\n\n\n\n<li><strong>Orden<\/strong>: ordena las entradas recuperadas en orden ascendente o descendente.<\/li>\n\n\n\n<li><strong>Ordenar por<\/strong>: establece los criterios de ordenaci&oacute;n, como la fecha de publicaci&oacute;n o el n&uacute;mero de comentarios. Utiliza <strong>rand<\/strong> para recuperar entradas aleatorias.<\/li>\n\n\n\n<li><strong>Post_mime_type<\/strong>: consulta los tipos de entradas adjuntas bas&aacute;ndose en los par&aacute;metros del tipo mime.<\/li>\n\n\n\n<li><strong>Suppress_filters<\/strong>: determina si se suprimen los filtros para que la consulta no pueda ser alterada. Este par&aacute;metro es por defecto <strong>TRUE<\/strong>.<\/li>\n<\/ul><p>Sin par&aacute;metros personalizados, la funci&oacute;n <strong>get_posts<\/strong> recuperar&aacute; por defecto las &uacute;ltimas entradas. Debes adjuntar un array de posts <strong>objeto<\/strong> a la funci&oacute;n y especificar los argumentos para filtrar los posts utilizando esta sintaxis:<\/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   $arguments = array(\n      \"parameter_1\" =&gt; value, \n      \"parameter_2\" =&gt; value\n   );<\/pre><h3 class=\"wp-block-heading\" id=\"h-objetos-wp-posts\">Objetos WP_Posts<\/h3><p>La funci&oacute;n <strong>get_posts<\/strong> de WordPress devuelve una matriz de objetos <strong>post<\/strong> que contienen diversa informaci&oacute;n sobre las entradas de tu sitio web. Algunas de las propiedades comunes de los objetos <strong>post<\/strong> incluyen:<\/p><ul class=\"wp-block-list\">\n<li><strong>ID<\/strong>: el n&uacute;mero de ID del post.<\/li>\n\n\n\n<li><strong>post_author<\/strong>: el ID num&eacute;rico de usuario del autor de la entrada.<\/li>\n\n\n\n<li><strong>post_title<\/strong>: el t&iacute;tulo de la entrada.<\/li>\n\n\n\n<li><strong>post_date<\/strong>: la fecha de publicaci&oacute;n de la entrada en formato AAAA-MM-DD.<\/li>\n\n\n\n<li><strong>post_content<\/strong>: el contenido de la entrada.<\/li>\n\n\n\n<li><strong>post _status<\/strong>: el estado actual del post recuperado, como publicado o borrador.<\/li>\n\n\n\n<li><strong>post_modified<\/strong>: fecha de la &uacute;ltima modificaci&oacute;n de la entrada.<\/li>\n\n\n\n<li><strong>comment_count<\/strong>: el n&uacute;mero de comentarios de la entrada.<\/li>\n<\/ul><p>Utiliza <strong>foreach<\/strong> para recorrer las matrices de entradas y echo para mostrarlas. Aqu&iacute; tienes un ejemplo de la estructura del c&oacute;digo:<\/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      echo \"&lt;h1&gt;\" . $post-&gt;post_title . \"&lt;\/h1&gt;&lt;br&gt;\";\n   }<\/pre><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2023\/11\/hpanel-5.00.53%E2%80%AFp.m.png\" alt=\"Panel de control hPanel\" class=\"wp-image-43562\"><\/figure><p>Para mostrar los resultados en cualquier p&aacute;gina, a&ntilde;ade la funci&oacute;n <strong>get_posts<\/strong> a una plantilla de <a href=\"\/ar\/tutoriales\/utilizar-child-theme\">tema hijo.<\/a> Tambi&eacute;n puedes incluirla en el archivo <strong>blog.php<\/strong> para mostrar los resultados en una p&aacute;gina del blog. En los <a href=\"\/ar\/hosting-wordpress\">planes WordPress de Hostinger<\/a>, estos archivos son accesibles a trav&eacute;s del <strong>Administrador de Archivos<\/strong>.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"\/ar\/hosting-wordpress\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/blog.hostinger.io\/com-ar-tutoriales\/wp-content\/uploads\/sites\/38\/2024\/06\/ES-New-WP_in-text-banner.png\" alt=\"\" class=\"wp-image-40615\" srcset=\"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/06\/ES-New-WP_in-text-banner.png 1024w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/06\/ES-New-WP_in-text-banner-300x88.png 300w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/06\/ES-New-WP_in-text-banner-150x44.png 150w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/06\/ES-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-utilizar-la-funcion-get-posts-en-wordpress\">C&oacute;mo utilizar la funci&oacute;n get_posts en WordPress<\/h2><p>Debido a sus diversos par&aacute;metros, la funci&oacute;n <strong>get_posts<\/strong> de WordPress tiene diversos casos de uso. En esta secci&oacute;n, explicaremos los m&aacute;s comunes.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-obtener-las-entradas-mas-populares\">C&oacute;mo obtener las entradas m&aacute;s populares<\/h2><p>Algunos sitios de WordPress tienen widgets que muestran las entradas m&aacute;s populares. Para activarlo, utiliza <strong>get_posts<\/strong> para consultar un array de IDs de entradas en funci&oacute;n del n&uacute;mero de comentarios:<\/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   $arguments = array(\n      \"orderby\" =&gt; \"comment_count\", \n      \"posts_per_page\" =&gt; 10\n   );\n   $posts_array = get_posts($arguments);\n   foreach($posts_array as $post)\n   {\n      echo \"&lt;h1&gt;\" . $post-&gt;post_title . \"&lt;\/h1&gt;&lt;br&gt;\";\n      echo \"&lt;p&gt;\" . $post-&gt;post_ID . \"&lt;\/p&gt;&lt;br&gt;\";\n   } \n?&gt;<\/pre><p>En el ejemplo, especificamos argumentos que contienen una matriz de par&aacute;metros que filtrar&aacute;n las entradas consultadas. En este caso, utilizamos el par&aacute;metro <strong>orderby<\/strong> para ordenar las entradas en funci&oacute;n del n&uacute;mero de comentarios.<\/p><p>Tambi&eacute;n utilizamos <strong>post_per_page<\/strong> para limitar a <strong>10<\/strong> el n&uacute;mero de entradas mostradas por p&aacute;gina. A continuaci&oacute;n, creamos una matriz que llama a la funci&oacute;n <strong>get_posts<\/strong>, que utiliza <strong>$arguments<\/strong> para filtrar las entradas.<\/p><p>Despu&eacute;s de que la funci&oacute;n recupere las entradas, el m&eacute;todo <strong>foreach<\/strong> hace un loop con los resultados. A continuaci&oacute;n, la funci&oacute;n <strong>echo<\/strong> muestra el ID y el t&iacute;tulo de la entrada recuperada.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-obtener-entradas-por-autor\">C&oacute;mo obtener entradas por autor<\/h2><p>Si tu sitio web WordPress tiene m&uacute;ltiples colaboradores, encontrar manualmente las entradas de un autor espec&iacute;fico puede llevar mucho tiempo. Para hacerlo r&aacute;pidamente, utiliza el par&aacute;metro <strong>autor<\/strong> para filtrar las entradas:<\/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   $arguments = array(\n      \"numberposts\" =&gt; -1,\n      \"author\" =&gt; 2\n   );\n   $sample_array = get_posts($arguments);\n   foreach($sample_array as $post)\n   {\n      echo \"&lt;h3&gt; \" . $post-&gt;post_title . \"&lt;\/h3&gt;\";\n      echo \"&lt;p&gt;\" . $post-&gt;post_date . \"&lt;\/p&gt;\";\n   }\n?&gt;<\/pre><p>En los argumentos, utilizamos dos par&aacute;metros: <strong>n&uacute;mero de entradas<\/strong> y <strong>autor<\/strong>. El par&aacute;metro <strong>n&uacute;mero de entradas<\/strong> limitar&aacute; el n&uacute;mero de entradas mostradas. Si lo establecemos en<strong> -1<\/strong>, se mostrar&aacute;n todos los mensajes.<\/p><p>Por su parte, el par&aacute;metro <strong>autor<\/strong> filtrar&aacute; las entradas y solo mostrar&aacute; las de un autor concreto bas&aacute;ndose en su ID. En este caso, el ID del autor del ejemplo es <strong>2<\/strong>. Para consultar varios autores, especifica los ID en una lista separada por comas.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-obtener-entradas-de-la-misma-categoria\">C&oacute;mo obtener entradas de la misma categor&iacute;a<\/h2><p>La funci&oacute;n <strong>get_posts<\/strong> de WordPress se utiliza habitualmente para recuperar entradas en funci&oacute;n de sus categor&iacute;as. Existen diferentes par&aacute;metros para esta tarea, los m&aacute;s comunes son:<\/p><ul class=\"wp-block-list\">\n<li><strong>category<\/strong>: basado en el ID de la categor&iacute;a.<\/li>\n\n\n\n<li><strong>category_name<\/strong>: utilizando el slug de la categor&iacute;a, como noticias o patrocinado.<\/li>\n\n\n\n<li><strong>category__and<\/strong>: consulta una matriz de varios ID de categor&iacute;a.<\/li>\n\n\n\n<li><strong>category_not_in<\/strong>: obtener entradas de un ID de categor&iacute;a excluido.<\/li>\n<\/ul><p>Independientemente del par&aacute;metro, la sintaxis es la misma. Aqu&iacute; tienes un ejemplo de fragmento de c&oacute;digo para consultar entradas de una categor&iacute;a con el ID <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   $arguments = array(\n      \"numberposts\" =&gt; -1,\n      \"category\" =&gt; 1,\n      \"orderby\" =&gt; \"date\",\n      \"order\" =&gt; \"DESC\"\n   );\n   $category_array = get_posts($arguments);\n   foreach($sample_array as $post)\n   {\n      echo \"&lt;h3&gt; \" . $post-&gt;post_title . \"&lt;\/h3&gt;\";\n      echo \"&lt;p&gt;\" . $post-&gt;post_ID . \"&lt;\/p&gt;\";\n   }\n?&gt;<\/pre><p>En el ejemplo, establecemos el n&uacute;mero de entradas en &ndash;<strong>1<\/strong> para mostrarlas todas y especificamos el ID de categor&iacute;a como filtro. Tambi&eacute;n utilizamos los par&aacute;metros <strong>orderby<\/strong> y <strong>order<\/strong> para ordenar las entradas consultadas en orden descendente seg&uacute;n su fecha.<\/p><p>La funci&oacute;n <strong>get_posts<\/strong> devolver&aacute; las entradas en <strong>$category_array<\/strong> bas&aacute;ndose en los par&aacute;metros<strong> $arguments<\/strong>. A continuaci&oacute;n, el c&oacute;digo hace un bucle con los resultados para mostrar el ID y el t&iacute;tulo de la entrada consultada.<\/p><p>Si quieres recuperar entradas con varias categor&iacute;as, sustituye el par&aacute;metro category por <strong>category__and<\/strong>. A continuaci&oacute;n, utiliza una lista separada por comas de los ID de categor&iacute;a como valor. Por ejemplo, aqu&iacute; tienes un c&oacute;digo que mostrar&aacute; las entradas con 1, 2 y 3 categor&iacute;as:<\/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\" =&gt; array(\"1\",\"2\",\"3\")<\/pre><p>Los par&aacute;metros <strong>categor&iacute;a<\/strong> y <strong>nombre_categor&iacute;a<\/strong> tambi&eacute;n pueden tomar una matriz como valor. A diferencia de <strong>category__and<\/strong>, recuperar&aacute;n entradas de cualquiera de las categor&iacute;as especificadas. Considera el siguiente ejemplo:<\/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\" =&gt; array(\"news\",\"archive\",\"sponsored\")<\/pre><p>El c&oacute;digo del ejemplo mostrar&aacute; todas las entradas que pertenezcan a una o m&aacute;s de las categor&iacute;as especificadas. Si utilizas <strong>category__and<\/strong>, la funci&oacute;n solo mostrar&aacute; las entradas de las tres categor&iacute;as.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-obtener-entradas-con-meta-claves-y-valores-coincidentes\">C&oacute;mo obtener entradas con meta claves y valores coincidentes<\/h2><p>Si tus entradas de WordPress tienen un campo personalizado, puedes utilizar <strong>get_posts<\/strong> para recuperarlas bas&aacute;ndote en una meta clave y un valor coincidentes. Aqu&iacute; tienes los par&aacute;metros importantes y sus funciones:<\/p><ul class=\"wp-block-list\">\n<li><strong>meta_key<\/strong>: recupera entradas bas&aacute;ndose en la clave del campo personalizado.<\/li>\n\n\n\n<li><strong>meta_value<\/strong>: consulta las entradas bas&aacute;ndose en el valor de la cadena de la meta clave.<\/li>\n\n\n\n<li><strong>meta_value_num<\/strong>: filtra las entradas de forma similar a <strong>meta_value<\/strong> pero utiliza un valor num&eacute;rico.<\/li>\n\n\n\n<li><strong>meta_compare<\/strong>: aplicar una operaci&oacute;n para comprobar el par&aacute;metro <strong>meta_valor<\/strong>.<\/li>\n<\/ul><p>Los usuarios pueden utilizar estos par&aacute;metros juntos para recuperar entradas con una clave y un valor meta espec&iacute;ficos. Considera el siguiente ejemplo:<\/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   $arguments = array(\n      \"numberposts\" =&gt; -1,\n      \"meta_key\" =&gt; \"color\",\n      \"meta_value\" =&gt; \"blue\", \n      \"orderby\" =&gt; \"date\",\n      \"order\" =&gt; \"ASC\"\n   );\n   $category_array = get_posts($arguments);\n   foreach($sample_array as $post)\n   {\n      echo \"&lt;h3&gt; \" . $post-&gt;post_title . \"&lt;\/h3&gt;\";\n      echo \"&lt;p&gt;\" . $post-&gt;post_date . \"&lt;\/p&gt;\";\n   }\n?&gt;<\/pre><p>El c&oacute;digo requiere todas las entradas que tienen el campo personalizado <strong>color<\/strong> con un valor <strong>azul<\/strong>. Si omites el par&aacute;metro <strong>meta_key<\/strong>, recuperar&aacute; todas las entradas con un valor <strong>azul<\/strong>, independientemente de su nombre de campo personalizado. A la inversa, si eliminas <strong>meta_valor<\/strong> se mostrar&aacute;n las entradas con el campo personalizado <strong>color<\/strong> con cualquier valor.<\/p><p>Por su parte, <strong>meta_compare<\/strong> te permite especificar una operaci&oacute;n para modificar el funcionamiento de meta_clave y meta_valor. Considera el siguiente fragmento de c&oacute;digo:<\/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   $arguments = array(\n      \"numberposts\" =&gt; -1,\n      \"meta_key\" =&gt; \"color\",\n      \"meta_value\" =&gt; \"blue\", \n      \"meta_compare\" =&gt; \"!=\", \n   );\n?&gt;<\/pre><p>Utilizamos el valor != para excluir las entradas con el valor de meta_clave especificado. As&iacute;, se mostrar&aacute; una matriz de entradas excluyendo las que tengan el metavalor <strong>azul<\/strong>. Te recomendamos que consultes la documentaci&oacute;n de WordPress para conocer todos los valores de funcionamiento.<\/p><p>Tambi&eacute;n puedes utilizar varios pares meta clave-valor para crear una consulta m&aacute;s espec&iacute;fica. Para ello, utiliza el par&aacute;metro <strong>meta_consulta<\/strong> con las matrices de filtro como valor. A continuaci&oacute;n, utiliza la funci&oacute;n relaci&oacute;n con el valor <strong>AND<\/strong> u <strong>OR<\/strong> para establecer relaciones entre las matrices. Esta es la sintaxis<\/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   $arguments = array(\n      \"post_type\" =&gt; \"postname\",\n      \"meta_query\" =&gt; array(\n      \"relation\" =&gt; \"relation\",\n      array(\n         \"key\" =&gt; \"keyname\",\n         \"value\" =&gt; \"keyvalue\", \n         \"compare\" =&gt; \"operation\", \n      ),\n      array(\n         \"key\" =&gt; \"keyname\",\n         \"value\" =&gt; \"keyvalue\", \n         \"compare\" =&gt; \"operation\", \n      ),\n      ),\n   );\n?&gt;<\/pre><p>&nbsp;&nbsp;&nbsp;<\/p><h2 class=\"wp-block-heading\" id=\"h-como-obtener-un-tipo-de-entrada-personalizado-con-una-taxonomia-personalizada\">C&oacute;mo obtener un tipo de entrada personalizado con una taxonom&iacute;a personalizada<\/h2><p>La <a href=\"\/ar\/tutoriales\/taxonomia-wordpress\">taxonom&iacute;a de WordPress<\/a> es un mecanismo que te permite agrupar contenidos en funci&oacute;n de sus relaciones o caracter&iacute;sticas. Las taxonom&iacute;as predeterminadas para las entradas de WordPress son categor&iacute;a y etiqueta, pero puedes a&ntilde;adir tantas nuevas como necesites.<\/p><p>Si tu sitio WordPress tiene un tipo de entrada personalizado, la taxonom&iacute;a ayuda a categorizar su contenido de forma m&aacute;s espec&iacute;fica. Por ejemplo, un tipo de entrada de pel&iacute;cula puede tener taxonom&iacute;as personalizadas como g&eacute;nero y fecha de estreno.<\/p><p>La consulta de entradas de la misma taxonom&iacute;a utiliza una funci&oacute;n similar a la de categor&iacute;a. Utiliza el nombre de la taxonom&iacute;a personalizada como par&aacute;metro y especifica el nombre del t&eacute;rmino o identificador como valor. Por ejemplo, el siguiente fragmento de c&oacute;digo consultar&aacute; un tipo de entrada personalizado llamado &ldquo;<strong>pel&iacute;cula<\/strong>&rdquo; para buscar entradas con el g&eacute;nero &ldquo;<strong>rese&ntilde;a<\/strong>&ldquo;:<\/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   $arguments = array(\n      \"numberposts\" =&gt; -1,\n      \"post_type\" =&gt; \"movie\",\n      \"genre\" =&gt; \"review\",\n      \"orderby\" =&gt; \"date\",\n      \"order\" =&gt; \"ASC\"\n   );\n   $category_array = get_posts($arguments);\n   foreach($sample_array as $post)\n   {\n      echo \"&lt;h3&gt; \" . $post-&gt;post_title . \"&lt;\/h3&gt;\";\n      echo \"&lt;p&gt;\" . $post-&gt;post_date . \"&lt;\/p&gt;\";\n   }\n?&gt;<\/pre><p>Tambi&eacute;n puedes utilizar m&aacute;s de un par&aacute;metro para crear una consulta de post compleja utilizando <strong>tax_query<\/strong>. Toma un array de arrays como valor, conteniendo cada uno de ellos los siguientes par&aacute;metros:<\/p><ul class=\"wp-block-list\">\n<li><strong>taxonom&iacute;a<\/strong>: el nombre de la taxonom&iacute;a.<\/li>\n\n\n\n<li><strong>field<\/strong>: el m&eacute;todo para seleccionar el t&eacute;rmino de la taxonom&iacute;a, ya sea utilizando un ID, un slug o un nombre. Por defecto utiliza el ID.<\/li>\n\n\n\n<li><strong>terms<\/strong>: el t&eacute;rmino de la taxonom&iacute;a basado en el campo. Para filtrar varias taxonom&iacute;as, utiliza una matriz como valor.<\/li>\n\n\n\n<li><strong>include_children<\/strong>: la regla que define si se debe incluir la taxonom&iacute;a hija. Por defecto se establece en <strong>TRUE<\/strong>.<\/li>\n\n\n\n<li><strong>operador<\/strong>: la operaci&oacute;n l&oacute;gica para los par&aacute;metros. Los valores incluyen <strong>IN, NOT IN, AND, EXISTS<\/strong> y <strong>NOT EXISTS<\/strong>.<\/li>\n<\/ul><p>Por ejemplo, el siguiente c&oacute;digo consultar&aacute; las entradas con la etiqueta <strong>John<\/strong> de la taxonom&iacute;a <strong>Personas<\/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   $arguments = array(\n   \"numberposts\" =&gt; -1,\n   \"tax_query\" =&gt; array(\n      array(\n      \"taxonomy\" =&gt; \"people\",\n      \"field\" =&gt; \"slug\",\n      \"terms\" =&gt; \"john\",\n      ),\n   ),\n   \"orderby\" =&gt; \"date\",\n   \"order\" =&gt; \"ASC\"\n   );\n?&gt;<\/pre><p>Para utilizar varias consultas de taxonom&iacute;a, a&ntilde;ade otra matriz en el par&aacute;metro <strong>tax_query<\/strong>. Adem&aacute;s, especifica la relaci&oacute;n entre las matrices utilizando los par&aacute;metros de <strong>relaci&oacute;n<\/strong> con valores <strong>AND<\/strong> u <strong>OR<\/strong>. Aqu&iacute; tienes un ejemplo de matriz:<\/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   $arguments = array(\n   \"tax_query\" =&gt; array(\n   \"relation\" =&gt; \"AND\",\n   array(\n      \"taxonomy\" =&gt; \"movie_genre\",\n      \"field\" =&gt; \"slug\",\n      \"terms\" =&gt; array( \"thriller\", \"fantasy\" ),\n   ),\n   array(\n      \"taxonomy\" =&gt; \"actor\",\n      \"field\" =&gt; \"term_id\",\n      \"terms\" =&gt; array( 90, 105, 207 ),\n      \"operator\" =&gt; \"NOT IN\",\n   ),\n   ),\n?&gt;<\/pre><h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusi&oacute;n<\/h2><p>La funci&oacute;n <strong>get_posts<\/strong> de WordPress es un m&eacute;todo para recuperar un conjunto de entradas, p&aacute;ginas o tipos de entradas personalizados de la base de datos bas&aacute;ndose en par&aacute;metros de consulta espec&iacute;ficos. Se utiliza para mostrar r&aacute;pidamente las entradas que coinciden con tus criterios, como el recuento de comentarios o las meta claves.<\/p><p>Esta funci&oacute;n utiliza la clase <strong>WP_query<\/strong> para construir una consulta SQL y enviarla a la base de datos de WordPress. La base de datos devuelve entonces una matriz de objetos post que representan las <strong>entradas<\/strong> del sitio web.<\/p><p>Hay varios par&aacute;metros de <strong>get_posts<\/strong>, como <strong>numberposts<\/strong>, <strong>category<\/strong> y <strong>post_type<\/strong>. Tambi&eacute;n devuelve objetos <strong>WP_posts<\/strong> que contienen datos de la entrada como <strong>ID<\/strong>, <strong>post_author<\/strong> y <strong>post_title<\/strong>.<\/p><p>Los desarrolladores utilizan la funci&oacute;n <strong>get_posts<\/strong> de WordPress para diversas tareas y escenarios. Normalmente, puedes utilizarla para recuperar entradas con el mayor n&uacute;mero de comentarios, el mismo autor, categor&iacute;as similares y taxonom&iacute;as personalizadas.<\/p><h2 class=\"wp-block-heading\" id=\"h-preguntas-frecuentes-sobre-get-posts-de-wordpress\">Preguntas frecuentes sobre get_posts de WordPress<\/h2><p>Para ayudarte a comprender mejor la funci&oacute;n <strong>get_posts<\/strong> de WordPress, responderemos a varias preguntas frecuentes sobre ella.<\/p><div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-69446d931d750\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">&iquest;Cu&aacute;l es la diferencia entre get_posts y WP_query?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Ambos son m&eacute;todos para consultar y mostrar entradas de la base de datos de tu sitio web. Sin embargo, la clase u003cstrongu003eWP_queryu003c\/strongu003e altera el loop de WordPress despu&eacute;s de cada consulta, lo que puede provocar errores si se utiliza incorrectamente.u003cbr \/u003eu003cbr \/u003eMientras tanto, el m&eacute;todo u003cstrongu003eget_postsu003c\/strongu003e reinicia autom&aacute;ticamente el bucle despu&eacute;s de mostrar las entradas solicitadas, por lo que es menos propenso a errores y m&aacute;s conveniente.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div><div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-69446d931d768\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">&iquest;Cu&aacute;l es la diferencia entre las funciones get_posts y get_pages?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>A diferencia de u003cstrongu003eget_postsu003c\/strongu003e, la funci&oacute;n u003cstrongu003eget_pagesu003c\/strongu003e no utiliza la clase u003cstrongu003eWP_queryu003c\/strongu003e y consulta directamente la base de datos. Estas funciones de WordPress tambi&eacute;n tienen par&aacute;metros e informaci&oacute;n recuperada diferentes.Por ejemplo, u003cstrongu003eget_pagesu003c\/strongu003e no utiliza los par&aacute;metros meta value y key. Adem&aacute;s, solo consulta p&aacute;ginas y tipos de entrada jer&aacute;rquicos.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div><p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La funci&oacute;n get_posts de WordPress te permite recuperar entradas, p&aacute;ginas y tipos de entradas personalizados en funci&oacute;n de unos par&aacute;metros dados. Funciona filtrando las entradas en funci&oacute;n de criterios como la fecha, el autor, el tipo, el permiso o la meta clave. Los propietarios de sitios WordPress pueden utilizar esta funci&oacute;n para mostrar r&aacute;pidamente contenido [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/ar\/tutoriales\/get_posts-funcion-wordpress\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":329,"featured_media":46568,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"","rank_math_description":"WordPress get_posts es una funci\u00f3n para recuperar un conjunto personalizado de publicaciones seg\u00fan criterios espec\u00edficos en una lista de PHP.","rank_math_focus_keyword":"","footnotes":""},"categories":[4747],"tags":[],"class_list":["post-36820","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-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\/ar\/tutoriales\/wp-json\/wp\/v2\/posts\/36820","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/users\/329"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/comments?post=36820"}],"version-history":[{"count":20,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/posts\/36820\/revisions"}],"predecessor-version":[{"id":46567,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/posts\/36820\/revisions\/46567"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/media\/46568"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/media?parent=36820"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/categories?post=36820"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/tags?post=36820"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}