masakichi-code

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

『カスタム投稿』アーカイブページで年毎の一覧表示するやり方

  • PHP
  • WordPress

2023.06.11(日)

『カスタム投稿』アーカイブページで年毎の一覧表示するやり方
『アーカイブページでカスタム投稿を年毎で一覧表示したい』『カスタム投稿を年毎で一覧表示して各年の見出しを出したい』

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

本記事の内容

  • 『カスタム投稿』アーカイブページで年毎の一覧表示するやり方
  • 年毎の各年の見出しの出し方

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

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

1.『カスタム投稿』アーカイブページで年毎の一覧表示するやり方

  • その①:カスタム投稿タイプを用意する
  • その②:アーカイブページを作成する
  • その③:年毎一覧の記述のやり方
  • その④:年毎の各年の見出しの出し方

その①:カスタム投稿タイプを用意する

カスタム投稿タイプの用意をしよう

カスタム投稿タイプの作り方は記事にしています。
作成のやり方がわからない方はぜひご覧ください。

WordPressのカスタム投稿の作り方【パターンごとでページ表示させる方法もご紹介】

用意のできた方は次をご覧くださいね。

その②:アーカイブページを作成する

こちらも記事にしています

カスタム投稿タイプのアーカイブページの作り方も記事にしています。
作成のやり方がわからない方はぜひご覧くださいね。

WordPressのカスタム投稿の一覧ページの作り方【パターンごと有り】

用意ができた方は次に進みましょう。

その③:年毎一覧の記述のやり方

実際のコードがこちら

まず、実際のコードをご紹介します。
コピペで使ってOKです。

解説をしていきます

最初に$news_by_year = array();で年毎の投稿を格納する配列を用意します。

次に$news_queryにカスタム投稿『news』を全件取得しています。

その後、$year = get_the_date(‘Y’);で投稿日の年を取得して、$news_by_year[$year][] = $post;で年毎に投稿をまとめています。

ここから、最初のforeach文『foreach ($news_by_year as $year => $news)』で年毎に出力しています。

年のループの中で月ごとの投稿をforeachを使って、出力しています。

その④:年毎の各年の見出しの出し方

実は先ほどのコードにまぎれています

投稿年as $yearに格納した年をループ内で呼び出しています。

ここまでできればphpファイルをいじらず、WordPress管理画面だけ完結できますね。
ではまた。