【wordpress】年の区切りを自動で設定する

2018年6月8日
技術ノート

投稿の一覧ページなどで、投稿記事を年などの区切ってを表示する方法。

(イメージ)
————————————————————————
■2018
・投稿記事
・投稿記事
・投稿記事

■2017
・投稿記事
・投稿記事
・投稿記事
————————————————————————

■テンプレートを直接編集する。

・表示させる全ての投稿の投稿年を取得し、配列に格納する。

<?php if(have_posts()): while(have_posts()): the_post();

<?php
$year_arr[] = date("Y", strtotime($post->post_date));
?>

<?php endwhile; else: ?>

 

・重複する年を削除する

<?php if(have_posts()): while(have_posts()): the_post();
<?php $year_arr[] = date("Y", strtotime($post->post_date)); ?>
<?php endwhile; else: ?>

<?php
$year_arr = array_unique($year_arr);
?>

 

・キーが歯抜けになっているので、振りなおす

<?php if(have_posts()): while(have_posts()): the_post();
<?php $year_arr[] = date("Y", strtotime($post->post_date)); ?>
<?php endwhile; else: ?>
<?php $year_arr = array_unique($year_arr); ?>

<?php 
$year_arr = array_merge($year_arr);
?>

 

あとは、

foreach($year_arr as $key => $val):などで、条件に合わせ処理する。