{"id":231656,"date":"2023-01-05T09:53:00","date_gmt":"2023-01-05T06:53:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231656"},"modified":"2022-12-25T21:40:03","modified_gmt":"2022-12-25T18:40:03","slug":"ordenar-publicaciones-de-wordpress-por-fecha","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/ordenar-publicaciones-de-wordpress-por-fecha\/","title":{"rendered":"Ordenar publicaciones de WordPress por fecha"},"content":{"rendered":"<p><strong>TL; DR:<\/strong> si est\u00e1 buscando una manera f\u00e1cil de ordenar las publicaciones de WordPress por fecha (ya sea descendente o ascendente) en el \u00e1rea de administraci\u00f3n sin que los usuarios hagan clic en el encabezado de la columna Fecha, puede hacerlo mediante el uso del <code>pre_get_posts<\/code>filtro que proporciona una referencia a la instancia <code>WP_Query<\/code>que se ejecuta en la p\u00e1gina.<\/p>\n<p>Para ver ejemplos en c\u00f3digo sobre c\u00f3mo hacerlo, consulte el resto del art\u00edculo.<\/p>\n<h2>Ordenar publicaciones de WordPress<\/h2>\n<p>Este art\u00edculo est\u00e1 escrito de tal manera que asume su configuraci\u00f3n basada en clases. Esto significa que la configuraci\u00f3n del filtro se define en una funci\u00f3n como <code>init<\/code>e invoca un <code>public<\/code>nombre de funci\u00f3n en la clase como <code>sort_articles_by_recent_time<\/code>.<\/p>\n<p>Finalmente, define una prioridad <code>10<\/code>y especifica que la funci\u00f3n aceptar\u00e1 un solo argumento (que es una instancia de <code>WP_Query<\/code>.<\/p>\n<p>Primero, agregue el siguiente filtro:<\/p>\n<pre><code>add_action( 'pre_get_posts', [ $this, 'sort_articles_by_recent_time' ], 10, 1 );<\/code><\/pre>\n<p>Luego agregue la siguiente funci\u00f3n:<\/p>\n<pre><code>public function sort_articles_by_recent_time( WP_Query $query) {\n  global $pagenow;\n  if (! is_admin() || 'edit.php' !== $pagenow) {\n    return;\n  }\n\n  $query-&gt;set( 'orderby', 'date' );\n  $query-&gt;set( 'order', 'desc' );\n }<\/code><\/pre>\n<p>As\u00ed es como funciona:<\/p>\n<ol>\n<li>Tenga en cuenta las primeras comprobaciones condicionales si no estamos en el \u00e1rea de administraci\u00f3n o si no estamos en la <code>edit.php<\/code>p\u00e1gina (que es la p\u00e1gina de listado de publicaciones), simplemente dejamos la funcionalidad. Esta es una cl\u00e1usula de guardia o devoluci\u00f3n anticipada.<\/li>\n<li>Si cumplimos con ambos criterios, actualizaremos la consulta para que ordene las publicaciones por fecha en orden descendente. Esto significa que las fechas m\u00e1s recientes siempre aparecer\u00e1n en la parte superior.<\/li>\n<\/ol>\n<p>Esto no tiene en cuenta el estado de la publicaci\u00f3n (por lo que si es una <code>draft<\/code>o una publicaci\u00f3n con el <code>publish<\/code>estado, no importar\u00e1). Adem\u00e1s, esto evitar\u00e1 que los usuarios tengan que hacer clic en el encabezado de la columna Fecha para ordenar los resultados seg\u00fan sea necesario si esto es algo que desea en su soluci\u00f3n.<\/p>\n<h3>Referencias<\/h3>\n<ul>\n<li><code>[pre_get_posts](https:\/\/developer.wordpress.org\/reference\/hooks\/pre_get_posts\/)<\/code><\/li>\n<li><code>[WP_Query](https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/)<\/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>Una manera f\u00e1cil de ordenar las publicaciones de WordPress por fecha (ya sea descendente o ascendente) en el \u00e1rea de administraci\u00f3n sin que los usuarios hagan clic en el encabezado de la columna Fecha<\/p>\n","protected":false},"author":1,"featured_media":158594,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[892,831,800,840,861],"tags":[1172],"class_list":["post-231656","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","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\/231656","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=231656"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231656\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/158594"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=231656"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=231656"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=231656"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}