Consultar publicaciones del año actual

10 mar 2013, 04:59:55
Vistas: 14.2K
Votos: 3

No entiendo por qué esto no funciona. Estoy intentando usar lo siguiente para mostrar solo publicaciones del año actual en la página principal:

<?php query_posts( "&year=$current_year&order=DESC"); ?>

Pero sigue mostrando publicaciones de 2012 (que en realidad no se crearon en 2012, pero establecí la fecha de publicación de una de las publicaciones que se muestra a febrero del año pasado).

Según la documentación, así es como debería hacerlo. ¿Alguien puede aclararme esto?

Gracias

2
Comentarios

No importa, olvidé configurar la variable:

<?php $current_year = date('Y'); ?>

/Facepalm

Phill Phill
10 mar 2013 05:09:41

Aquí hay información sobre ¿Cuándo deberías usar WP_Query vs query_posts() vs get_posts()? para cualquiera que llegue a esta pregunta.

admcfajn admcfajn
10 may 2019 01:25:55
Todas las respuestas a la pregunta 2
0

Solo necesitas obtener la fecha actual y agregarla en data_query en wp_query, mira esto:

<?php 

$getdate = getdate();
$args = array(
    'date_query' => array(
        array(
            'year'  => $getdate["year"]
        ),
    ),
);
$query = new WP_Query( $args );

?>

y luego usar el loop:

<?php 

if ( $query->have_posts() ): while ( $query->have_posts() ) : $query->the_post();

the_title();
the_content();

endwhile; endif;

?>
11 may 2014 00:50:52
0

No uses query_posts para modificar tus consultas. Es un desperdicio de recursos y produce resultados impredecibles, ya que sobrescribe la consulta original que ocurre antes de que se cargue la plantilla.

Usa pre_get_posts en el archivo functions.php de tu tema para alterar la consulta antes de que se envíe a la base de datos y antes de que se cargue la plantilla.

function home_page_current_year( $query ){
    if( $query->is_home() && $query->is_main_query() )
        $query->set( 'year', date('Y') );
}
add_action( 'pre_get_posts', 'home_page_current_year' );
10 mar 2013 05:15:38