{"id":231711,"date":"2023-01-07T17:37:00","date_gmt":"2023-01-07T14:37:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231711"},"modified":"2023-01-07T17:37:19","modified_gmt":"2023-01-07T14:37:19","slug":"buscar-publicaciones-de-wordpress-programaticamente-por-rango-de-fechas","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/buscar-publicaciones-de-wordpress-programaticamente-por-rango-de-fechas\/","title":{"rendered":"Buscar publicaciones de WordPress program\u00e1ticamente por rango de fechas"},"content":{"rendered":"<p><strong>TL; DR:<\/strong> El c\u00f3digo compartido en esta publicaci\u00f3n muestra c\u00f3mo puede modificar la consulta que se ejecuta en la p\u00e1gina <strong>Todas<\/strong> las publicaciones para que pueda limitar la forma en que busca publicaciones a un rango de fechas espec\u00edfico.<\/p>\n<p>Ha pasado un tiempo desde <a href=\"https:\/\/wordpress.mediadoma.com\/es\/buscar-metadatos-de-publicaciones-en-el-area-de-administracion-de-wordpress\/\" title=\"la \u00faltima vez que escrib\u00ed\">la \u00faltima vez que escrib\u00ed<\/a> sobre el uso del <code>post_where<\/code>filtro para modificar la consulta de b\u00fasqueda que se ejecuta en una p\u00e1gina determinada, como el \u00e1rea <strong>Todas<\/strong> las publicaciones de WordPress. Pero dado el hecho de que hay una variedad de usos para recuperar publicaciones, y tipos de publicaciones personalizadas, de diferentes maneras, hay una variedad de formas de usar este filtro \u00fanico.<\/p>\n<h2>Buscar publicaciones por intervalo de fechas<\/h2>\n<p>Para buscar publicaciones por rango de fechas, esto es lo que debe suceder:<\/p>\n<ol>\n<li>Registre una devoluci\u00f3n de llamada con el <code>posts_where<\/code>filtro,<\/li>\n<li>Aseg\u00farese de que la funci\u00f3n acepte la cadena <code>where<\/code>y la instancia de <code>WP_Query<\/code>que se est\u00e1 ejecutando en la p\u00e1gina<\/li>\n<li>Obtenga la fecha y hora de hoy y la fecha y hora de hace cuatro semanas<\/li>\n<li>Anteponer la <code>where<\/code>cl\u00e1usula para restringir los resultados a la fecha<\/li>\n<li><code>return<\/code>la consulta actualizada.<\/li>\n<\/ol>\n<pre><code>&lt;?php\nadd_filter( \n  'posts_where',\n  function (string $where, WP_Query $query ): string {\n    global $wpdb;\n\n    $todays_date   = gmdate( 'Y-m-d H:i:s', strtotime( 'now') );\n    $four_weeks_ago = gmdate( 'Y-m-d H:i:s', strtotime( '-4 weeks') );\n\n    $prepend = $wpdb-&gt;prepare(\n      \" AND {$wpdb-&gt;posts}.post_date &gt; %s\",\n      $four_weeks_ago\n    );\n\n    $prepend .= $wpdb-&gt;prepare(\n      \" AND {$wpdb-&gt;posts}.post_date &lt; %s\",\n      $todays_date\n    );\n\n    return $prepend. $where;\n  }, 101, 2\n);<\/code><\/pre>\n<p>El resultado de esta funci\u00f3n es una consulta modificada que restringe las publicaciones que se devuelven en la fecha y hora especificadas. Es decir, hace cuatro semanas hasta la hora, el minuto y el segundo.<\/p>\n<p>Puede cambiar esto actualizando la <code>-4 weeks<\/code>cadena pasada a la <code>strtotime<\/code>funci\u00f3n (pero recomiendo revisar la p\u00e1gina del manual de PHP vinculada a continuaci\u00f3n para comprender c\u00f3mo funciona esta funci\u00f3n con un lenguaje como este).<\/p>\n<h2>Referencias<\/h2>\n<ul>\n<li><code>[posts_where](https:\/\/developer.wordpress.org\/reference\/hooks\/posts_where\/)<\/code><\/li>\n<li><code>[WP_Query](https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/)<\/code><\/li>\n<li><code>[wpdb](https:\/\/developer.wordpress.org\/reference\/classes\/wpdb\/)<\/code><\/li>\n<li><code>[gmdate](https:\/\/www.php.net\/manual\/en\/function.gmdate.php)<\/code><\/li>\n<li><code>[strtotime](https:\/\/www.php.net\/manual\/en\/function.strtotime.php)<\/code><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>El c\u00f3digo compartido en esta publicaci\u00f3n muestra c\u00f3mo puede buscar publicaciones por intervalo de fechas en la p\u00e1gina Todas las publicaciones.<\/p>\n","protected":false},"author":1,"featured_media":158377,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[892,716,831,800,840,861],"tags":[1172],"class_list":["post-231711","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-desarrollador","category-guia-para-principiantes","category-php-2","category-tutoriales","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231711","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=231711"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231711\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/158377"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=231711"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=231711"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=231711"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}