Go to top Go to bottom

年別・月別・日別のアーカイブへリンクするには、それぞれget_year_link()get_month_link()get_day_link()を使用します。

年別・月別・日別のアーカイブへリンクする

年別のアーカイブとは、その年に公開された投稿が一覧されることを想定したページのことで、月別・日別も考え方は同じです。これらのページへのリンクを得るには次のようにします。

<?php
  $year_url   = get_year_link( $year );
  $month_url  = get_month_link( $year, $month );
  $day_url    = get_day_link( $year, $month, $day );
?>

引数の$year$month$dayには取得したい年月日を整数で指定します。

<?php
  $year_url   = get_year_link( 2020 );
  $month_url  = get_month_link( 2020, 9 );
  $day_url    = get_day_link( 2020, 9, 16 );
?>

たとえば月のリンクの場合、返される文字列は次のようなURLになります。

http://localhost/minimalist/2020/09/

URLの文字列ですので、実際には<a>タグを使って次のようにして使うことになるでしょう。

<a href="<?php echo get_month_link( 2020, 9 ); ?>">2020年9月のアーカイブ</a>

get_month_link()文字列を出力しませんので、echoするのを忘れないようにしてください。

アーカイブページへのリンクを一覧する

どの年月にどの記事が入っているかを把握することは困難ですので、日付のアーカイブ一覧を手動で作成するのは現実的ではありません。サイドバーなどでアーカイブページへの一覧を表示するには、wp_get_archives()という関数を使います。

現在の投稿が入っているアーカイブページへリンクする

現在の投稿の公開日をクリックしたとき、その年月のアーカイブページにリンクさせる実用的な例を考えてみます。

投稿の日付をクリックすると月別アーカイブへ遷移するようにしたい
投稿の日付をクリックすると月別アーカイブへ遷移するようにしたい

これを実現するには次のようにします。

<?php
  $year   = get_the_date( 'Y' );
  $month  = get_the_date( 'm' );
?>
<a href="<?php echo get_month_link( $year, $month ); ?>">
  <?php echo get_the_date(); ?>
</a>   

2~3行目で、投稿の西暦と月を別々に取得し、その結果を5行目のget_month_link()の引数として渡しています。これを応用すれば、年をクリックしたときは年別の、月をクリックしたときは月別のアーカイブに遷移させることもできます。

なお、公開の日付をthe_date()ではなくecho get_the_date()にしている理由はここを参照してください。

今年・今月・今日のアーカイブへのリンクを取得する

get_year_link()の引数に”(空の文字列)を指定すると、自動的に今年の西暦が使われます。get_month_link()get_day_link()も同様です。

<a href="<?php echo get_month_link( '', '' ); ?>">今月の記事一覧へ</a>

月が変わると自動でリンク先も変わりますが、まだ記事が投稿されていなくてもリンクが有効になってしまうことに注意しましょう。