Query per post dell'anno corrente
Non capisco bene perché questo non funzioni. Sto provando a usare il seguente codice per mostrare solo i post dell'anno corrente nella pagina principale:
<?php query_posts( "&year=$current_year&order=DESC"); ?>
Ma continua a mostrare post del 2012 (in realtà non sono stati creati nel 2012, ma ho impostato la data di pubblicazione di uno dei post che viene visualizzato a febbraio dello scorso anno)
Secondo la documentazione, dovrei farlo così. Qualcuno può chiarirmi la situazione?
Grazie
Devi solo ottenere la data corrente e aggiungerla al data_query in wp_query, Guarda questo:
<?php
$getdate = getdate();
$args = array(
'date_query' => array(
array(
'year' => $getdate["year"]
),
),
);
$query = new WP_Query( $args );
?>
e poi usa il loop:
<?php
if ( $query->have_posts() ): while ( $query->have_posts() ) : $query->the_post();
the_title();
the_content();
endwhile; endif;
?>

Non utilizzare query_posts
per modificare le tue query. È uno spreco di risorse e produce risultati imprevedibili, poiché sovrascrive la query originale che avviene prima del caricamento del template.
Utilizza invece pre_get_posts
nel file functions.php
del tuo tema per alterare la query prima che venga inviata al database, e prima che il template venga caricato.
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' );
