Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo hacer un loop en WordPress con los post de los últimos días, meses o años

Imago voragine.net

Que no es lo mismo que hacer un loop con los post de la última semana, del último mes o del último año. Para conseguir un loop con las entradas de los últimos días, meses o años tenemos que crear una función que añada un filtro temporal a la query. Por ejemplo, para obtener los post de los últimos doce meses:

function filter_where( $where = '' ) {
  $where .= " AND post_date > '" . date('Y-m-d', strtotime('-365 days')) . "'";
  return $where;
}

A continuación filtramos la query. La variable $query_string contiene la query sin modificar, el loop correspondiente a la página que se esté cargando.

add_filter( 'posts_where', 'filter_where' );
$query = new WP_Query( $query_string );
  while ($query->have_posts()) : $query->the_post();
    include "loop.php";
  endwhile;
remove_filter( 'posts_where', 'filter_where' );

Si se quiere aplicar el filtro a una query específica, basta sustituir $query_string por parámetros de WP_query.

Dejar un comentario

No hay comentarios en esta entrada.
*
*

 

No hay trackbacks