これがうまくいかない理由はよくわかりません。現在の年の投稿のみをフロントページに表示するには、次のようにします。
<?php query_posts( "&year=$current_year&order=DESC"); ?>
それでも、まだ2012年の投稿が表示されています(実際には2012年に作成されたのではありませんが、公開日は昨年の2月に表示された投稿のいずれかに設定します)。
資料によると、それは私がやるべきことです。誰もが光を当てることができますか?
ありがとう
現在の日付を取得して、それをwp_queryのdata_queryに追加するだけです。
<?php
$getdate = getdate();
$args = array(
'date_query' => array(
array(
'year' => $getdate["year"]
),
),
);
$query = new WP_Query( $args );
?>
そして、loopを使います。
<?php
if ( $query->have_posts() ): while ( $query->have_posts() ) : $query->the_post();
the_title();
the_content();
endwhile; endif;
?>
クエリの修正にquery_posts
を使用しないでください。これはリソースの浪費であり、テンプレートがロードされる前に発生した元のクエリを上書きするため、予測不可能な結果をもたらします。
クエリを変更するには、代わりにテーマのpre_get_posts
に functions.php
を使用します。 前 データベースに送信され、テンプレートが読み込まれる前に。
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' );