WordPress obtener publicaciones por fecha sin query_posts

2

Quiero obtener publicaciones de los últimos 30 días en una barra lateral, pero no quiero usar query_posts, ¿hay alguna forma de lograr esto con la función obtener publicaciones?

    
pregunta Chozen 03.03.2013 - 08:41

2 respuestas

5

Sí, simplemente agregue un filtro antes de llamarlo y elimínelo después de hacerlo

function filter_where_wpa89154($where = '') {
    //posts in the last 30 days
    $where .= " AND post_date > '" . date('Y-m-d', strtotime('-30 days')) . "'";
    return $where;
}

add_filter('posts_where', 'filter_where_wpa89154');
$args = array(
    'posts_per_page'  => 5,
    'post_type'       => 'post',
    'post_status'     => 'publish',
    'suppress_filters' => false
); 
$posts = get_posts($args);
remove_filter('posts_where', 'filter_where_wpa89154');

observe el 'suppress_filters' => false que es lo que hace que esto ocurra con get_posts

    
respondido por el Bainternet 03.03.2013 - 11:11
6

A partir de 3.7 puede usar date_query enlace

Así se vería así:

$args = array(
    'posts_per_page'  => 5,
    'post_type'       => 'post',
    'post_status'     => 'publish',
    'date_query' => array(
        'after' => date('Y-m-d', strtotime('-30 days')) 
    ),
    'suppress_filters' => false
); 
$posts = get_posts($args);
    
respondido por el Kode 31.07.2014 - 23:46

Lea otras preguntas en las etiquetas