{"id":22322,"date":"2022-08-24T00:35:23","date_gmt":"2022-08-23T22:35:23","guid":{"rendered":"\/tutoriales\/?p=22322"},"modified":"2026-03-10T16:43:51","modified_gmt":"2026-03-10T15:43:51","slug":"wp_query-wordpress","status":"publish","type":"post","link":"\/co\/tutoriales\/wp_query-wordpress","title":{"rendered":"Conceptos b\u00e1sicos sobre el uso de WP_Query en WordPress + ejemplos con c\u00f3digo"},"content":{"rendered":"<p>Por defecto, <a href=\"\/co\/tutoriales\/que-es-wordpress\">WordPress<\/a> ordena autom&aacute;ticamente tus entradas de la m&aacute;s reciente a la m&aacute;s antigua. Aunque los visitantes pueden buscar entradas espec&iacute;ficas mediante categor&iacute;as y etiquetas, es posible que no encuentren el contenido que buscan. Para organizar tus entradas, puedes utilizar <strong>WP_Query de WordPress.<\/strong><\/p><p>Usando WP_Query, puedes personalizar la visualizaci&oacute;n de las entradas y p&aacute;ginas de tu sitio web. Esta clase PHP te permite simplificar las peticiones complejas a la base de datos. Como desarrollador o propietario de un sitio web, puede ayudarte a personalizar las p&aacute;ginas m&aacute;s all&aacute; de tu tema por defecto.<\/p><p>En este art&iacute;culo, explicaremos qu&eacute; es WP_Query. Luego, te mostraremos c&oacute;mo usarlo en tu sitio web de WordPress. Finalmente, te daremos algunos ejemplos de formas de implementarlo en tu blog. &iexcl;Empecemos!<\/p><p class=\"has-text-align-center\"><a href=\"https:\/\/assets.hostinger.com\/content\/tutorials\/pdf\/Mega-WordPress-Cheat-ES.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Descarga la hoja de trucos de WordPress definitiva<\/a><\/p><h2 class=\"wp-block-heading\" id=\"h-introduccion-a-wp-query\">Introducci&oacute;n a WP_Query<\/h2><p>En WordPress, los datos de tu sitio se almacenan en una base de datos MySQL. Esto incluye todo, desde las entradas, las p&aacute;ginas y los comentarios, hasta los ajustes de configuraci&oacute;n.<\/p><p>Cuando un visitante hace clic en tu sitio web, esto env&iacute;a una solicitud a tu <a href=\"\/co\/tutoriales\/que-es-base-datos-wordpress\">base de datos de WordPress<\/a>. Tu base de datos recupera entradas y p&aacute;ginas espec&iacute;ficas para mostrarlas en funci&oacute;n de esta <a href=\"\/co\/tutoriales\/que-es-consulta-base-de-datos\/\">consulta<\/a>.<\/p><p>Como propietario de un sitio web, puedes aprovechar las consultas para obtener informaci&oacute;n espec&iacute;fica de tu base de datos. Aunque puedes construir consultas SQL, no es la forma m&aacute;s eficiente de recuperar datos. Aqu&iacute; es donde entra WP_Query.<\/p><p>WP_Query es una clase PHP que puedes usar para construir consultas para tu base de datos. En WordPress, esta es una clase incorporada que se produce cada vez que alguien busca tu contenido.<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"915\" height=\"598\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2022\/08\/Resultados-wordpress-hosting.jpg\" alt='Ejemplo al hacer una consulta con la palabra \"WordPress hosting\" y los resultados que trae' class=\"wp-image-22335\" srcset=\"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/Resultados-wordpress-hosting.jpg 915w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/Resultados-wordpress-hosting-300x196.jpg 300w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/Resultados-wordpress-hosting-150x98.jpg 150w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/Resultados-wordpress-hosting-768x502.jpg 768w\" sizes=\"(max-width: 915px) 100vw, 915px\" \/><\/figure><\/div><p>Sin embargo, implementar una consulta personalizada en WordPress puede permitir a los usuarios encontrar un contenido espec&iacute;fico sin tener que buscarlo. Si necesitas mostrar un grupo particular de entradas en el front end de tu sitio, puedes hacerlo f&aacute;cilmente usando un tipo de entrada personalizada WP_Query.<\/p><p>Por ejemplo, crear un <a href=\"\/co\/tutoriales\/custom-post-types-wordpress\/\">tipo de entrada personalizada de WordPress<\/a>. Para mostrar estas entradas, debes escribir una consulta espec&iacute;fica. Esta es la estructura b&aacute;sica de c&oacute;digo que puedes utilizar:<\/p><pre class=\"wp-block-code\"><code>\/\/ WP QUERY\n$query = new WP_Query([\n'post_type' =&gt; 'press-release'\n\"posts_per_page =&gt; 25,\n'category_name' =&gt; 'health',\n]);<\/code><\/pre><p>Esto funciona mediante la personalizaci&oacute;n del Bucle. Esencialmente, el Bucle es el c&oacute;digo PHP que WordPress utiliza para mostrar ciertas entradas. WordPress sabe c&oacute;mo procesar y dar formato a cada entrada bas&aacute;ndose en los criterios especificados en tu tipo de entrada personalizada WP_Query.<\/p><p>WP_Query tambi&eacute;n es &uacute;til para los desarrolladores. Puedes personalizar los temas de WordPress usando esta clase PHP sin consultar directamente la base de datos.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-utilizar-wp-query-de-wordpress-4-maneras\">C&oacute;mo utilizar WP_Query de WordPress (4 maneras)<\/h2><p>Ahora que ya conoces WP_Query, vamos a crear tu primera consulta. De esta forma, podr&aacute;s personalizar la visualizaci&oacute;n de tu sitio web de forma r&aacute;pida y sencilla.<\/p><h3 class=\"wp-block-heading\" id=\"h-1-crear-un-loop-o-bucle\">1. Crear un loop o bucle<\/h3><p>Para empezar, tendr&aacute;s que estar familiarizado con el Bucle de WordPress. Como hemos mencionado antes, el Bucle es responsable de extraer los datos de las entradas de la base de datos. Determina c&oacute;mo se muestra el contenido de acuerdo con los archivos de plantilla de tu tema.<\/p><p>Basado en los par&aacute;metros que establezcas, esto es lo que el Bucle puede mostrar:<\/p><ul class=\"wp-block-list\">\n<li>Contenido de tipos de entradas personalizadas y campos personalizados de WordPress.<\/li>\n\n\n\n<li>T&iacute;tulos de entradas y extractos en tu p&aacute;gina de inicio.<\/li>\n\n\n\n<li>El contenido y los comentarios de una sola entrada.<\/li>\n\n\n\n<li>Contenido de una p&aacute;gina individual utilizando etiquetas de plantilla.<\/li>\n<\/ul><p>Antes de personalizar el bucle con WP_Query, necesitar&aacute;s conocer la estructura del bucle. Aqu&iacute; hay un ejemplo de un bucle b&aacute;sico:<\/p><pre class=\"wp-block-code\"><code>&lt;?php\nif ( have_posts() ) :\n    while ( have_posts() ) : the_post();\n        \/\/ Display post content\n    endwhile;\nendif;\n?&gt;<\/code><\/pre><p>Vamos a desglosar las partes individuales de este bucle. En primer lugar, la funci&oacute;n have_posts() comprobar&aacute; si hay entradas en tu sitio. Si es as&iacute;, la condici&oacute;n while contin&uacute;a el bucle para cada entrada. Esencialmente, esto informa a tu base de datos para que muestre cualquier entrada en tu sitio web.<\/p><p>Sin embargo, es posible que no quieras mostrar todas tus entradas. Insertando el c&oacute;digo WP_Query<strong> <\/strong>en el bucle, puedes habilitar a WordPress para que s&oacute;lo muestre ciertas entradas:<\/p><pre class=\"wp-block-code\"><code>?php\n\/\/ The Query\n$the_query = new WP_Query( $args );\n\/\/ The Loop\nif ( $the_query-&gt;have_posts() ) {\n    echo '&lt;ul&gt;';\n    while ( $the_query-&gt;have_posts() ) {\n        $the_query-&gt;the_post();\n        echo '&lt;li&gt;' . get_the_title() . '&lt;\/li&gt;';\n    }\n    echo '&lt;\/ul&gt;';\n} else {\n    \/\/ no posts found\n}\n\/* Restore original Post Data *\/\nwp_reset_postdata();<\/code><\/pre><p>Contiene la misma estructura b&aacute;sica de bucle que las condiciones <strong>if<\/strong> o <strong>while<\/strong>. Sin embargo, hay una cadena adicional de WP_Query.<\/p><p>Puedes personalizar el bucle para que s&oacute;lo muestre las entradas asociadas a una taxonom&iacute;a, categor&iacute;a o autor espec&iacute;fico de WordPress seg&uacute;n los par&aacute;metros que hayas establecido. Tambi&eacute;n puedes restringir los resultados por fecha, etiquetas, campos personalizados y m&aacute;s. En otras palabras, cuando se trata de personalizar el Bucle con WP_Query, hay muchas rutas posibles.<\/p><h3 class=\"wp-block-heading\" id=\"h-2-utilizar-argumentos\">2. Utilizar argumentos<\/h3><p>Al estructurar tu WP_Query, debes incluir cuatro elementos b&aacute;sicos:<\/p><ul class=\"wp-block-list\">\n<li>Argumento de la consulta<\/li>\n\n\n\n<li>Consulta en s&iacute; misma<\/li>\n\n\n\n<li>El loop o bucle<\/li>\n\n\n\n<li>Reinicio de datos posteriores<\/li>\n<\/ul><p>Una de las partes m&aacute;s cr&iacute;ticas de tu consulta es el argumento (conocido como WP_Query args). El argumento informa a WordPress de los datos que quieres recuperar de la base de datos. En lugar de mostrar todo el contenido de tu entrada, el argumento pondr&aacute; algunas condiciones en tu bucle.<\/p><p>Probablemente hayas notado la l&iacute;nea ($args) en el ejemplo anterior. Aqu&iacute; es donde incluir&aacute;s tu argumento de consulta.<\/p><p>Para estructurar tus argumentos de WP_Query, necesitar&aacute;s colocar ciertos par&aacute;metros en un array. Hablaremos de los par&aacute;metros en la siguiente secci&oacute;n, pero aqu&iacute; est&aacute; el aspecto de un argumento b&aacute;sico:<\/p><pre class=\"wp-block-code\"><code>$args = array(\n    'parameter1' =&gt; 'value',\n    'parameter2' =&gt; 'value',\n    'parameter3' =&gt; 'value'\n);<\/code><\/pre><p>Por ejemplo, si quieres mostrar las entradas que tienen una etiqueta &ldquo;<strong>cocina<\/strong>&ldquo;, as&iacute; es como puedes codificar tu argumento:<\/p><pre class=\"wp-block-code\"><code>$query = new WP_Query( array( 'tag' =&gt; 'cooking' ) );<\/code><\/pre><p>Si no incluyes un argumento WP_Query, este no sacar&aacute; ning&uacute;n contenido de tu base de datos. Sin esta informaci&oacute;n, WordPress no sabr&aacute; qu&eacute; entradas mostrar.<\/p><h3 class=\"wp-block-heading\" id=\"h-3-establecer-parametros\">3. Establecer par&aacute;metros<\/h3><p>Como mencionamos anteriormente, establecer par&aacute;metros es importante para personalizar WP_Query. Puedes permitir que WordPress recupere una colecci&oacute;n personalizada de entradas de tu base de datos especificando esta informaci&oacute;n.<\/p><p>Si no est&aacute;s seguro de qu&eacute; par&aacute;metros incluir en tu argumento, WordPress proporciona ejemplos para muchos usos diferentes. Como estos ya est&aacute;n codificados para ti, esto puede ahorrarte tiempo y esfuerzo cuando construyas tu WP_Query.<\/p><p>Estos son algunos de los par&aacute;metros m&aacute;s comunes que puedes utilizar:<\/p><ul class=\"wp-block-list\">\n<li><strong>Posts_per_page:<\/strong> establece el n&uacute;mero de entradas que deseas mostrar.<\/li>\n\n\n\n<li><strong>Author:<\/strong> acota los resultados por uno o m&aacute;s autores.<\/li>\n\n\n\n<li><strong>Cat:<\/strong> especifica las categor&iacute;as a las que deben pertenecer los resultados.<\/li>\n\n\n\n<li><strong>Tag:<\/strong> extrae las entradas que tienen etiquetas espec&iacute;ficas.<\/li>\n\n\n\n<li><strong>Orderby:<\/strong> ordena los resultados por autor, tipo de entrada, fecha, etc.<\/li>\n\n\n\n<li><strong>Order:<\/strong> ordena los resultados en orden ascendente o descendente.<\/li>\n\n\n\n<li><strong>Post_type:<\/strong> define si la consulta debe recuperar entradas, p&aacute;ginas o tipos de entradas personalizadas.<\/li>\n\n\n\n<li><strong>Post_status:<\/strong> especifica si las entradas est&aacute;n en proceso, programadas, publicadas o eliminadas.<\/li>\n<\/ul><p>Por ejemplo, es posible que necesites mostrar las entradas de una determinada categor&iacute;a. En este caso, puedes incluir el nombre de la categor&iacute;a y el slug:<\/p><pre class=\"wp-block-code\"><code>$query = new WP_Query( array( 'category_name' =&gt; 'staff' ) );<\/code><\/pre><p>Esto sacar&aacute; las entradas bajo esta categor&iacute;a WP_Query y cualquier hijo de esta categor&iacute;a.<\/p><p>Usando diferentes par&aacute;metros, tambi&eacute;n puedes mostrar las entradas de una fecha espec&iacute;fica. Para mostrar el contenido de las 9 AM a las 5 PM en d&iacute;as de semana, este es el par&aacute;metro que debes utilizar:<\/p><pre class=\"wp-block-code\"><code>$args = array(\n    'date_query' =&gt; array(\n        array(\n            'hour'  \t=&gt; 9,\n            'compare'   =&gt; '&gt;=',\n        ),\n        array(\n            'hour'  \t=&gt; 17,\n            'compare'   =&gt; '&lt;=',\n        ),\n        array(\n            'dayofweek' =&gt; array( 2, 6 ),\n            'compare'   =&gt; 'BETWEEN',\n        ),\n    ),\n    'posts_per_page' =&gt; -1,\n);\n$query = new WP_Query( $args );<\/code><\/pre><p>El n&uacute;mero de par&aacute;metros que puedes utilizar es pr&aacute;cticamente ilimitado. Al incluir estas condiciones personalizadas en tus argumentos, tu WP_Query puede presentar con &eacute;xito los datos correctos.<\/p><h3 class=\"wp-block-heading\" id=\"h-4-modificar-las-propiedades-de-la-clase-con-metodos\">4. Modificar las propiedades de la clase con m&eacute;todos<\/h3><p>Como WP_Query es una clase PHP, contiene constantes llamadas propiedades. Estas son variables para la clase PHP.<\/p><p>Los desarrolladores de WordPress recomiendan no alterar las propiedades de WP_Query directamente. Sin embargo, puedes usar m&eacute;todos para interactuar con ellas.<\/p><p>Los m&eacute;todos funcionan de forma similar a las funciones. Cuando modificas los m&eacute;todos de WP_Query, puedes personalizar los datos que se recuperan.<\/p><p>En la documentaci&oacute;n de WP_Query, hay muchas funciones listadas para tareas b&aacute;sicas. Por ejemplo, incluir una funci&oacute;n reset_postdata() puede ser un paso importante al escribir tu WP_Query. Este m&eacute;todo restablecer&aacute; las propiedades de $current_post y $post.<\/p><p>Esto es lo que podr&iacute;a parecer:<\/p><pre class=\"wp-block-preformatted\">&lt;?php\n\/\/ the query\n$the_query = new WP_Query( $args ); ?&gt;\n \n&lt;?php if ( $the_query-&gt;have_posts() ) : ?&gt;\n \n    &lt;!-- pagination here --&gt;\n \n    &lt;!-- the loop --&gt;\n    &lt;?php while ( $the_query-&gt;have_posts() ) : $the_query-&gt;the_post(); ?&gt;\n        &lt;h2&gt;&lt;?php the_title(); ?&gt;&lt;\/h2&gt;\n    &lt;?php endwhile; ?&gt;\n    &lt;!-- end of the loop --&gt;\n \n    &lt;!-- pagination here --&gt;\n \n    &lt;?php wp_reset_postdata(); ?&gt;\n \n&lt;?php else : ?&gt;\n    &lt;p&gt;&lt;?php _e( 'Sorry, no posts matched your criteria.' ); ?&gt;&lt;\/p&gt;\n&lt;?php endif; ?&gt;<\/pre><p>En &uacute;ltima instancia, tendr&aacute;s que utilizar este m&eacute;todo si utilizas la funci&oacute;n_post() en tu consulta. Esto asegura que las etiquetas de la plantilla utilicen la entrada actual de la consulta principal.<\/p><p>Aqu&iacute; hay algunos m&eacute;todos adicionales que puedes usar para modificar las propiedades de tu WP_Query:<\/p><ul class=\"wp-block-list\">\n<li>get_posts: recupera una matriz de posts basada en las variables dadas.<\/li>\n\n\n\n<li>have_posts: determina si los posts est&aacute;n disponibles en el Bucle.<\/li>\n\n\n\n<li>generate_postdata: muestra los posts.<\/li>\n\n\n\n<li>fill_query_vars: completa las variables de consulta que no figuran en los par&aacute;metros.<\/li>\n<\/ul><p>Seg&uacute;n la informaci&oacute;n que proporciones, puedes personalizar tu WP_Query para que realice la funci&oacute;n necesaria. Esta puede ser una forma flexible y segura de modificar las propiedades de la clase.<\/p><h2 class=\"wp-block-heading\" id=\"h-ejemplos-de-wp-query\">Ejemplos de WP_Query<\/h2><p>Una vez que aprendas los fundamentos de WordPress WP_Query, puedes empezar a utilizarlo para personalizar el dise&ntilde;o de tu sitio web. Como hay varios par&aacute;metros que puedes definir, las opciones son casi infinitas.<\/p><p>&iexcl;Vamos a discutir algunos ejemplos comunes de WP_Query para darte algo de inspiraci&oacute;n!<\/p><h3 class=\"wp-block-heading\" id=\"h-1-ultimas-entradas-en-una-categoria-determinada\">1. &Uacute;ltimas entradas en una categor&iacute;a determinada<\/h3><p>Por lo general, los usuarios de Internet est&aacute;n m&aacute;s interesados en contenidos nuevos. Despu&eacute;s de que los visitantes lean una de tus entradas, querr&aacute;s ofrecerles alg&uacute;n contenido relacionado. Al recomendar entradas similares y m&aacute;s recientes, puedes dirigir a los usuarios a otros contenidos que podr&iacute;an disfrutar.<\/p><p>Esta WP_Query puede ser especialmente &uacute;til para los sitios web que tienen entradas sensibles al tiempo. Por ejemplo, los visitantes podr&iacute;an leer un art&iacute;culo cient&iacute;fico sobre la p&eacute;rdida de memoria. Usando WP_Query, puedes destacar temas similares con investigaciones actualizadas:<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"950\" height=\"487\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2022\/08\/ultimas-entradas.jpg\" alt=\"Ejemplo de visualizaci&oacute;n de art&iacute;culos recomendados y relacionados dependiendo la categor&iacute;a\" class=\"wp-image-22352\" srcset=\"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/ultimas-entradas.jpg 950w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/ultimas-entradas-300x154.jpg 300w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/ultimas-entradas-150x77.jpg 150w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/ultimas-entradas-768x394.jpg 768w\" sizes=\"(max-width: 950px) 100vw, 950px\" \/><\/figure><\/div><p>Si quieres sacar las &uacute;ltimas entradas de una categor&iacute;a espec&iacute;fica, pega esta WP_Query:<\/p><pre class=\"wp-block-code\"><code>&lt;?php\n \n\/\/ Get the current post id.\n$current_post_id = get_the_ID();\n \n\/\/ Get the current post's category (first one if there's more than one).\n$current_post_cats = get_the_category();\n$current_post_first_cat_id = $current_post_cats[ 0 ]-&gt;term_id;\n \n\/\/ Setup arguments.\n$args = array(\n    \/\/ Get category's posts.\n    'cat' =&gt; $current_post_first_cat_id,\n    \/\/ Exclude current post.\n    'post__not_in' =&gt; array( $current_post_id )\n);\n \n\/\/ Instantiate new query instance.\n$my_query = new WP_Query( $args );\n \n?&gt;<\/code><\/pre><p>Despu&eacute;s de editar esta consulta con la informaci&oacute;n de tu sitio, puedes mostrar entradas similares a la que el visitante acaba de leer. Esto puede guiar eficazmente al usuario hacia informaci&oacute;n relevante y actual sin necesidad de buscarla.<\/p><h3 class=\"wp-block-heading\" id=\"h-2-entradas-publicadas-esta-semana\">2. Entradas publicadas esta semana<\/h3><p>Si tienes muchos seguidores, los lectores querr&aacute;n leer tus art&iacute;culos m&aacute;s recientes tan pronto como se publiquen. Si dise&ntilde;as tu sitio web para que incluya los art&iacute;culos m&aacute;s recientes, podr&aacute;s ofrecer la informaci&oacute;n m&aacute;s relevante.&nbsp;<\/p><p>Especialmente si tienes un sitio de noticias, tendr&aacute;s que organizar tus entradas de la m&aacute;s reciente a la m&aacute;s antigua. Hacer esto puede permitir a los usuarios encontrar r&aacute;pida y f&aacute;cilmente el contenido sensible al tiempo.<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2022\/08\/ultimas-noticias.jpg\" alt=\"Ejemplo de visualizaci&oacute;n de &uacute;ltimos art&iacute;culos organizados seg&uacute;n fecha de publicaci&oacute;n\" class=\"wp-image-22356\" width=\"712\" height=\"593\" srcset=\"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/ultimas-noticias.jpg 712w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/ultimas-noticias-300x250.jpg 300w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/ultimas-noticias-150x125.jpg 150w\" sizes=\"(max-width: 712px) 100vw, 712px\" \/><\/figure><\/div><p>Usando WP_Query, puedes establecer par&aacute;metros basados en la fecha de un art&iacute;culo. Al recuperar s&oacute;lo las entradas publicadas en la &uacute;ltima semana, puedes evitar que los usuarios vean art&iacute;culos desactualizados:<\/p><pre class=\"wp-block-code\"><code>&lt;?php  \n   $arguments = array(\n      \"date_query\" =&gt; array(\n         array(\n           \"year\" =&gt; date( \"Y\" ),\n           \"week\" =&gt; date( \"W\" ),\n         )\n      )\n   );\n   $posts = new WP_Query($arguments);\n?&gt;<\/code><\/pre><p>Al personalizar el par&aacute;metro <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">date_query<\/code>, puedes dirigir a los art&iacute;culos publicados recientemente. Aunque puedes incluir tus propios valores personalizados, puede ser eficaz para destacar los art&iacute;culos escritos en la &uacute;ltima semana.<\/p><h3 class=\"wp-block-heading\" id=\"h-3-entradas-populares-por-numero-de-comentarios\">3. Entradas populares por n&uacute;mero de comentarios<\/h3><p>Del mismo modo, puedes promocionar las entradas que hayan gustado a la mayor&iacute;a de tu audiencia. Al informar a los usuarios de que otra entrada recibi&oacute; mucha participaci&oacute;n, puede animarles a hacer clic all&iacute; para obtener m&aacute;s informaci&oacute;n.<\/p><p>Dado que WordPress no lleva un registro del n&uacute;mero de visualizaciones de las entradas, es probable que tengas que a&ntilde;adir esta funcionalidad t&uacute; mismo. Puedes hacerlo con un plugin, pero esto puede ralentizar tu sitio.<\/p><p>Con WP_Query, puedes sugerir otras entradas populares seg&uacute;n tu n&uacute;mero de comentarios. Esto hace que sea f&aacute;cil mostrar tus art&iacute;culos m&aacute;s populares:<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"1008\" height=\"474\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2022\/08\/entradas-populares.jpg\" alt=\"Ejemplo de sugerencias de entradas que son populares debido al n&uacute;mero de comentarios\" class=\"wp-image-22361\" srcset=\"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/entradas-populares.jpg 1008w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/entradas-populares-300x141.jpg 300w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/entradas-populares-150x71.jpg 150w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/entradas-populares-768x361.jpg 768w\" sizes=\"(max-width: 1008px) 100vw, 1008px\" \/><\/figure><\/div><p>Estos son los datos que puedes utilizar para estructurar tus recomendaciones basadas en la popularidad:<\/p><pre class=\"wp-block-code\"><code>&lt;?php\n \n\/\/ Setup arguments.\n$args = array(\n    \/\/ Order by comment count.\n    'orderby' =&gt; 'comment_count'\n);\n \n\/\/ Instantiate new query instance.\n$my_query = new WP_Query( $args );\n \n?&gt;<\/code><\/pre><p>Tambi&eacute;n puedes acotar estos resultados en funci&oacute;n de una determinada categor&iacute;a. Simplemente a&ntilde;ade un par&aacute;metro con el nombre de tu categor&iacute;a:<\/p><pre class=\"wp-block-code\"><code>&lt;?php  \n   $arguments = array(\n      \"category_name\" =&gt; \"fiction\",\n      \"orderby\" =&gt; \"comment_count\",\n      \"posts_per_page\" =&gt; 5,\n   );\n   $posts = new WP_Query($arguments);\n?&gt;&nbsp;<\/code><\/pre><p>Esto tambi&eacute;n limitar&aacute; las recomendaciones a cinco entradas. Si es necesario, puedes editar este valor con un n&uacute;mero diferente.<\/p><h3 class=\"wp-block-heading\" id=\"h-4-entradas-del-mismo-autor-y-categoria\">4. Entradas del mismo autor y categor&iacute;a<\/h3><p>Cuando los visitantes leen la entrada de tu blog, puede que les guste mucho ese contenido. Puede que simplemente prefieran el estilo de escritura del autor o el tema general.<\/p><p>En este caso, puedes utilizar WP_Query para ofrecer recomendaciones de art&iacute;culos similares. De esta manera, los lectores pueden hacer clic en los art&iacute;culos adicionales para seguir leyendo:<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"1019\" height=\"502\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2022\/08\/entradas-por-autor.jpg\" alt=\"Visualizaci&oacute;n de entradas sugeridas del mismo autor\" class=\"wp-image-22366\" srcset=\"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/entradas-por-autor.jpg 1019w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/entradas-por-autor-300x148.jpg 300w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/entradas-por-autor-150x74.jpg 150w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/entradas-por-autor-768x378.jpg 768w\" sizes=\"(max-width: 1019px) 100vw, 1019px\" \/><\/figure><\/div><p>Para construir una fila de entradas similares, necesitar&aacute;s implementar una cadena espec&iacute;fica de WP_Query. Esto buscar&aacute; entradas de blog en tu sitio web que tengan el mismo autor y categor&iacute;a de entrada.<\/p><p>Aqu&iacute; est&aacute; el c&oacute;digo que puedes utilizar:<\/p><pre class=\"wp-block-code\"><code>&lt;?php  \n   $arguments = array(\n      \"author_name\" =&gt; \"john\",\n      \"category_name\" =&gt; \"fiction\",\n      \"posts_per_page\" =&gt; 3,\n   );\n   $posts = new WP_Query($arguments);\n?&gt;<\/code><\/pre><p>Al implementar este c&oacute;digo, deber&aacute;s reemplazar &ldquo;<strong>john<\/strong>&rdquo; por el nombre del autor. A continuaci&oacute;n, elimina &ldquo;<strong>ficci&oacute;n<\/strong>&rdquo; e incluye la etiqueta de tu categor&iacute;a. Por &uacute;ltimo, no dudes en modificar el n&uacute;mero de recomendaciones de entradas que se muestran en la p&aacute;gina.<\/p><h3 class=\"wp-block-heading\" id=\"h-5-entradas-anuales-del-autor\">5. Entradas anuales del autor<\/h3><p>Si tienes un blog destacado, es probable que tengas muchos autores diferentes que escriben entradas. Despu&eacute;s de que alguien lea una de tus entradas, es posible que quiera encontrar m&aacute;s entradas de ese autor con mayor facilidad.<\/p><p>En este caso, puedes hacer una lista de las entradas de un autor del a&ntilde;o pasado. Esto puede dar a los visitantes informaci&oacute;n sobre el autor y una lista de sus escritos anteriores:<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"792\" height=\"585\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2022\/08\/entradas-por-autor-ano.jpg\" alt=\"Visualizaci&oacute;n de entradas por autor pero del a&ntilde;o inmediatamente anterior\" class=\"wp-image-22369\" srcset=\"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/entradas-por-autor-ano.jpg 792w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/entradas-por-autor-ano-300x222.jpg 300w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/entradas-por-autor-ano-150x111.jpg 150w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/08\/entradas-por-autor-ano-768x567.jpg 768w\" sizes=\"(max-width: 792px) 100vw, 792px\" \/><\/figure><p>Para desarrollar una lista de las entradas anuales de un autor, puedes utilizar esta WP_Query:<\/p><pre class=\"wp-block-code\"><code>&lt;?php\n \n\/\/ Get the year we're in.\n$current_year = date( 'Y' );\n \n\/\/ Setup arguments.\n$args = array(\n    \/\/ Get the author with the nicename \"john\".\n    'author' =&gt; 'john',\n    \/\/ Get his posts from this year.\n    'year'   =&gt; $current_year\n);\n \n\/\/ Instantiate new query instance.\n$my_query = new WP_Query( $args );\n \n?&gt;<\/code><\/pre><p>Estos datos extraer&aacute;n todas las entradas escritas por un autor espec&iacute;fico. Tambi&eacute;n refinar&aacute; estos resultados bas&aacute;ndose en el a&ntilde;o actual. Por ejemplo, no mostrar&aacute; ning&uacute;n art&iacute;culo publicado hace m&aacute;s de un a&ntilde;o.<\/p><h3 class=\"wp-block-heading\" id=\"h-6-vista-previa-de-las-entradas-programadas\">6. Vista previa de las entradas programadas<\/h3><p>Para dar a tu audiencia un adelanto de los pr&oacute;ximos contenidos, puedes listar tus entradas programadas en tu sitio web. Usando WP_Query, puedes mostrar el t&iacute;tulo y los extractos de tus nuevas entradas.<\/p><p>Esto puede ayudar a generar inter&eacute;s en tus art&iacute;culos antes de publicarlos. Adem&aacute;s, es f&aacute;cil de implementar con WP_Query:<\/p><pre class=\"wp-block-code\"><code>&lt;?php\n \n\/*\n * Usage with Excerpts:\n *\n * &lt;?php echo tutsplus_show_drafts(); ?&gt;\n *\n * Usage without Excerpts:\n *\n * &lt;?php echo tutsplus_show_drafts( false ); ?&gt;\n *\/\n \nfunction tutsplus_show_drafts( $show_excerpts = true ) {\n \n    \/\/ Setup arguments.\n    $args = array(\n        'post_status' =&gt; 'future',\n        'nopaging' =&gt; true\n    );\n \n    \/\/ Instantiate new query instance.\n    $my_query = new WP_Query( $args );\n \n    \/\/ Check that we have query results.\n    if ( $my_query-&gt;have_posts() ) {\n \n        \/\/ Begin generating markup.\n        $output = '&lt;section class=\"pending-posts\"&gt;';\n \n        \/\/ Start looping over the query results.\n        while ( $my_query-&gt;have_posts() ) {\n \n            $my_query-&gt;the_post();\n \n            \/\/ Output draft post title and excerpt (if enabled).\n            $output .= '&lt;div class=\"pending\"&gt;';\n                $output .= '&lt;h3 class=\"pending-title\"&gt;' . get_the_title() . '&lt;\/h3&gt;';\n                    $output .= get_the_title();\n                $output .= '&lt;\/h3&gt;';\n \n                if ( $show_excerpts ) {\n \n                    $output .= '&lt;div class=\"pending-excerpt\"&gt;';\n                        $output .= get_the_excerpt();\n                    $output .= '&lt;\/div&gt;';\n \n                }\n \n            $output .= '&lt;\/div&gt;';\n \n        }\n \n        \/\/ End generating markup.\n        $output .= '&lt;\/section&gt;';\n \n    } else {\n \n        \/\/ Let user know that nothing was found.\n        $output = '&lt;section class=\"drafts-error\"&gt;';\n            $output .= '&lt;p&gt;' . __( 'Nothing found', 'tutsplus' ) . '&lt;\/p&gt;';\n        $output .= '&lt;\/section&gt;';\n \n    }\n \n    wp_reset_postdata();\n \n    return $output;\n \n}\n \n?&gt;<\/code><\/pre><p>Esto configurar&aacute; autom&aacute;ticamente una vista previa de los t&iacute;tulos de tus entradas programadas. Tambi&eacute;n puedes incluir un extracto si es necesario.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"\/co\/hosting-wordpress\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/blog.hostinger.io\/co-tutoriales\/wp-content\/uploads\/sites\/40\/2024\/06\/ES-New-WP_in-text-banner.png\" alt=\"\" class=\"wp-image-40615\" srcset=\"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2024\/06\/ES-New-WP_in-text-banner.png 1024w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2024\/06\/ES-New-WP_in-text-banner-300x88.png 300w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2024\/06\/ES-New-WP_in-text-banner-150x44.png 150w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/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-conclusion\">Conclusi&oacute;n<\/h2><p><strong>WP_Query <\/strong>proporciona una forma m&aacute;s sencilla de realizar peticiones a la base de datos de WordPress. Usando esta clase PHP, puedes personalizar la visualizaci&oacute;n de tu sitio y ofrecer una experiencia &uacute;nica a cada visitante online.<\/p><p>Estas son las cuatro formas para utilizar WP_Query en WordPress:<\/p><ul class=\"wp-block-list\">\n<li>Crear un bucle.<\/li>\n\n\n\n<li>Utilizar argumentos de consulta.<\/li>\n\n\n\n<li>Establecer par&aacute;metros espec&iacute;ficos.<\/li>\n\n\n\n<li>Modificar las propiedades de la clase.<\/li>\n<\/ul><p>Cuando hayas aprendido estas t&eacute;cnicas de WP_Query para WordPress, podr&aacute;s recomendar entradas espec&iacute;ficas basadas en la popularidad, la fecha, el autor y mucho m&aacute;s. Si tienes m&aacute;s preguntas sobre WP_Query, no dudes en dejar un comentario abajo. Aseg&uacute;rate de utilizar un <a href=\"\/co\/hosting-wordpress\">alojamiento de WordPress<\/a> fiable para que el rendimiento del sitio sea de primera categor&iacute;a.<\/p><h2 class=\"wp-block-heading\" id=\"h-wp_query-en-wordpress-faq\">WP_Query en WordPress &ndash; FAQ<\/h2><p>A continuaci&oacute;n encontrar&aacute;s m&aacute;s informaci&oacute;n sobre WP_Query en WordPress.<\/p><div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-694471d36102f\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">&iquest;Qu&eacute; es WP_Query en WordPress?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>WP_Query es una clase de WordPress que permite a los desarrolladores buscar entradas, p&aacute;ginas y archivos adjuntos en la base de datos. Tambi&eacute;n puede consultar otros tipos de contenido bas&aacute;ndose en varios par&aacute;metros, como categor&iacute;a, fecha, autor y campos personalizados.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-694471d361035\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">&iquest;Cu&aacute;l es la diferencia entre WP_Query y el bucle de WordPress?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>WP_Query se utiliza para obtener y recuperar entradas de la base de datos en base a par&aacute;metros espec&iacute;ficos, mientras que el Bucle de WordPress se utiliza para mostrar esas entradas en un formato espec&iacute;fico en el front-end del sitio. El Bucle utiliza WP_Query en segundo plano para recuperar las entradas.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-694471d361036\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">&iquest;Cu&aacute;les son las ventajas de utilizar WP_Query?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Las ventajas de utilizar WP_Query incluyen la capacidad de recuperar y mostrar contenido espec&iacute;fico en funci&oacute;n de varios par&aacute;metros, como el tipo de entrada, la categor&iacute;a, la fecha y los campos personalizados, lo que permite a los desarrolladores crear consultas personalizadas y mostrar contenido de una forma muy flexible y personalizable.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Por defecto, WordPress ordena autom&aacute;ticamente tus entradas de la m&aacute;s reciente a la m&aacute;s antigua. Aunque los visitantes pueden buscar entradas espec&iacute;ficas mediante categor&iacute;as y etiquetas, es posible que no encuentren el contenido que buscan. Para organizar tus entradas, puedes utilizar WP_Query de WordPress. Usando WP_Query, puedes personalizar la visualizaci&oacute;n de las entradas y p&aacute;ginas [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/co\/tutoriales\/wp_query-wordpress\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":317,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"C\u00f3mo utilizar WP_Query en WordPress: Conceptos + casos de uso","rank_math_description":"WP_Query es una clase PHP de base de datos en WordPress. Aprende a utilizarla y obt\u00e9n seis ejemplos de casos de uso con c\u00f3digo incluido.","rank_math_focus_keyword":"wp_query","footnotes":""},"categories":[4747],"tags":[14326],"class_list":["post-22322","post","type-post","status-publish","format-standard","hentry","category-wordpress","tag-wp_query"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/wordpress-wp_query","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp_query","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp_query-wordpress","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/wp_query-wordpress","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/wordpress-wp_query","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/basics-of-using-wordpress-wp_query-examples-with-code","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/basics-of-using-wordpress-wp_query-examples-with-code","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/wp_query-wordpress","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp_query-wordpress","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/que-es-una-url-8","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp_query","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/wordpress-wp_query","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/wordpress-wp_query","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/wordpress-wp_query","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/wordpress-wp_query","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/posts\/22322","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/users\/317"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/comments?post=22322"}],"version-history":[{"count":53,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/posts\/22322\/revisions"}],"predecessor-version":[{"id":46678,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/posts\/22322\/revisions\/46678"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/media?parent=22322"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/categories?post=22322"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/tags?post=22322"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}