masakichi-code

独学エンジニアの技術ブログ

年別一覧リンクの作成のやり方【実際のコードも載せてます。】

  • PHP
  • WordPress

2023.06.12(月)

年別一覧リンクの作成のやり方【実際のコードも載せてます。】
『WordPressで年別の一覧リンクってどう作るの?』『年別一覧をカンタンに作れる方法を知りたい』

こういった疑問に答えます。

本記事の内容

  • 年別一覧リンクの作成のやり方
  • 年別一覧リンクの作成のやり方【wp_get_archives()関数】
  • 年別一覧リンクの作成のやり方【調整したコードを紹介】

Webエンジニア歴1年
WordPressの運営&立ち上げ70サイト以上かかわっている

こういった私が解説していきます。

1. 年別一覧リンクの作成のやり方

  • その①:やり方はこの2つ

その①:やり方はこの2つ

WordPressの関数で出力する方法

WordPressにはwp_get_archives()という一覧表示できる関数があります。
『2. 年別一覧リンクの作成のやり方【wp_get_archives()関数】』で詳しく紹介していきます。

また、もっとカスタマイズをして使うには、phpのループ処理をする必要があります。
そちらもご紹介しているので、ぜひ見ていってくださいね。
それでは、さっそく解説をはじめていきます。

2. 年別一覧リンクの作成のやり方【wp_get_archives()関数】

  • その①:wp_get_archives()でカンタンに実装
  • その②:コードの解説をします

その①:wp_get_archives()でカンタンに実装

次のような感じでカンタンに出力できます。

このコードの解説をしていきますね。

その②:コードの解説をします

投稿タイプの指定

『post_type=post』で投稿タイプを指定します。
カスタム投稿タイプ『works』であれば、『post_type=works』といった感じ。

月、年などの指定

『type』で月(monthly)や年(yearly)を指定できます。

投稿数の表示

『show_post_count』で投稿数を表示するかを指定できます。
‘1’なら表示、’0’なら非表示です。

自動でHTMLが出力されるので、もっとカスタマイズをしたい方は次をご覧くださいね。

年別一覧リンクの作成のやり方【調整したコードを紹介】

  • その①:コードをご紹介
  • その②:コードの解説をします

その①:コードをご紹介

私が実際に使ったコードです

下記は投稿を年でまとめて、年をクリックしたら月別が表示されるアコーディオンメニューを作ったときのコードです。

その①:コードの解説をします

投稿を配列で入れる準備

年と月で投稿を格納する配列の関数を宣言します。

Queryを指定

次に、『post_type』に投稿タイプをいれます。
公開状態のすべての投稿を取得するために上記のように指定しています。

投稿を配列で格納

$year = get_the_date(‘Y’);では投稿の年を取得し、$month = get_the_date(‘n’);では投稿の月を取得しています。
それを$blog_by_year[$year][$month][] = $post;で投稿を格納しています。

年でループ処理

年でループするforeach文を使います。
取得した投稿『$blog_by_year 』をその年『$year』でループ指定していきます。

月でループ処理

年のforeach文の中で、月のforeach文を使います。
代入された$yearsを月『$month』ごとに『$blog』へ格納していきます。
$post_count = count($blog);で自動で投稿数を出力するようにしていますね。
リンク先などはご自身のリンク先にあうように記述してくださいね。

もし、コードを調整してほしいなどのご要望がありましたら、お問い合わせからご相談ください。
私の方で、調整できるところまでやってみたいと思います。

以上、年別一覧リンクの作成のやり方についてご紹介しました。
ではまた。