✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Ordenar publicaciones de WordPress por fecha

10

TL; DR: si está buscando una manera fácil de ordenar las publicaciones de WordPress por fecha (ya sea descendente o ascendente) en el área de administración sin que los usuarios hagan clic en el encabezado de la columna Fecha, puede hacerlo mediante el uso del pre_get_postsfiltro que proporciona una referencia a la instancia WP_Queryque se ejecuta en la página.

Para ver ejemplos en código sobre cómo hacerlo, consulte el resto del artículo.

Ordenar publicaciones de WordPress

Este artículo está escrito de tal manera que asume su configuración basada en clases. Esto significa que la configuración del filtro se define en una función como inite invoca un publicnombre de función en la clase como sort_articles_by_recent_time.

Finalmente, define una prioridad 10y especifica que la función aceptará un solo argumento (que es una instancia de WP_Query.

Primero, agregue el siguiente filtro:

add_action( 'pre_get_posts', [ $this, 'sort_articles_by_recent_time' ], 10, 1 );

Luego agregue la siguiente función:

Así es como funciona:

  1. Tenga en cuenta las primeras comprobaciones condicionales si no estamos en el área de administración o si no estamos en la edit.phppágina (que es la página de listado de publicaciones), simplemente dejamos la funcionalidad. Esta es una cláusula de guardia o devolución anticipada.
  2. Si cumplimos con ambos criterios, actualizaremos la consulta para que ordene las publicaciones por fecha en orden descendente. Esto significa que las fechas más recientes siempre aparecerán en la parte superior.

Esto no tiene en cuenta el estado de la publicación (por lo que si es una drafto una publicación con el publishestado, no importará). Además, esto evitará que los usuarios tengan que hacer clic en el encabezado de la columna Fecha para ordenar los resultados según sea necesario si esto es algo que desea en su solución.

Referencias

  • [pre_get_posts](https://developer.wordpress.org/reference/hooks/pre_get_posts/)
  • [WP_Query](https://developer.wordpress.org/reference/classes/wp_query/)

Fuente de grabación: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More