Wordpressの自作テンプレートで日付別アーカイブを表示する方法

WordPressの自作テンプレートで日付別アーカイブを表示する方法

2015年1月5日 wordpress

【PR】当サイトにはアフィリエイト広告が含まれています。

今更ですが、ブログの日付別アーカイブページが表示されないことに気付きました。
何で!?と思って調べたら、単純に
「archive.php」を作るのを忘れていました。

せっかくなので、「archive.php」の作り方をまとめます。

 

wordpressでブログを作る時に必要なテンプレート

wordpressのブログのテンプレートを自作する時には、下記のphpテンプレートを作成する必要があります。

 

  • index.php ・・・ 全ての記事の一覧ページ
  • single.php ・・・ 個別の記事を表示するページ
  • category.php ・・・ カテゴリー別の一覧ページ
  • archive.php ・・・ 日付別アーカイブの一覧ページ

 

このうち、カテゴリー別の一覧ページや日付別アーカイブの一覧ページが必要ない場合は、category.phparchive.phpを作る必要はありません。
category.phparchive.phpが存在しない場合は、代わりにindex.phpが表示されます。

今回は、この「archive.php」を作成し忘れていたため、自動的に「index.php」が表示されてしまっており、日付別アーカイブページが表示されない状態になっていたわけです。

それでは、「archive.php」を作ってみましょう!

 

archive.phpの作り方

archive.php」は、基本的にindex.phpをコピーし、
読み込みタグやページのタイトル部分など、日付別アーカイブに必要な部分を変更して作ります。

ですので、まずは元となるindex.phpを見てみましょう。
少し長くなりますが、ページまるごとのコードを載せてみます。
(このブログでは、index.phpはNOTESのページになります。)

このindex.phparchive.phpに変換するためには、黄色でマークアップした、
4~5行目、10~19行目、32~34行目を弄る必要があります。
順番に見て行きましょう!

 

4~5行目 ブログのヘッダー部分を修正する

まず、4~5行目の

↑こちらを、archive.php用の記述に変更してみます。

index.phpでは、<h1>タイトルで「BLOG」と表示していますが、
日付別アーカイブページでは「2015年 1月」のように、アーカイブの年・月を表示します。
また、index.phpではbloginfo('description');で、wordpressのダッシュボードで設定した「キャッチフレーズ」が表示されるように設定していますが、
日付別アーカイブページでは「アーカイブ: 2015年 1月 の一覧ページです。」のように、こちらもアーカイブの年・月を表示するように変更します。

変更後のコードは下記のようになります。

月別アーカイブ用のページと年別アーカイブ用のページで場合別けし、
年別アーカイブ用のページの時に「月」が表示されないようにしています。

 

10~19行目 アーカイブの読み込みタグを修正する

次に、10~19行目の

↑こちらを、archive.php用の記述に変更してみます。

index.phpでは投稿タイプが「post」の投稿をすべて取得するように設定していますが、
archive.phpでは、ブログ読者に選択された月度、年度の記事だけを取得するようにします。

変更後のコードは下記のようになります。
ちなみに、category.phpを作る時も、下記と同じ記述になります。

 

32~34行目 アーカイブの読み込みタグの、閉じタグを修正する

先ほど10~19行目で、アーカイブの読み込みタグを修正しましたので、
それに伴い、閉じタグも修正する必要があります。

32~34行目の

↑こちらを、

このように修正します。

これで完成です!
完成したarchive.phpをまとめて見てみますと、下記のようになります。
(このブログでarchive.phpを使用しているページは、こちらになります。)

 

category.phpを作成する場合

ちなみに、category.phpを作成する場合は、archive.phpの4-21行目を

↑上記に変更するだけでOKです!

single_cat_title();でカテゴリー名を取得するように変更しました。

【PR】当サイトにはアフィリエイト広告が含まれています。

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

YOUTUBE

チャンネル登録お願いします!

カテゴリ

CONTACT

管理人:いのり

何かあればこちらよりお問い合わせください。

お問い合わせ