SimpleJournal – アーカイブページの作り込み

本日はカテゴリーごとの投稿一覧やタグごとの投稿一覧を表示するためのページテンプレート archive.php を作りこんでいきたいと思います。

01. index.php をコピーして archive.php を作成

まずはじめに、index.php をコピーして、archive.php という名前のファイルを作成します。

archive

 

02. archive.php を編集

上記の手順で作成した archive.php に、アーカイブページのタイトルを表示するコードを追記します(9〜15行目)。

 

利用したのは以下のテンプレートタグ。

the_archive_title

クエリの内容に基づいてアーカイブのタイトルを表示します。
ターム(カテゴリー、タグ、カスタムタクソノミー)、日付、投稿タイプ、投稿フォーマット、作成者などのアーカイブページが対象です。

 

Webブラウザでカテゴリーごとの投稿一覧を表示すると、以下のようになります。

ArchivePage01

「カテゴリー:」という文字を勝手につけてくれるのが微妙ではあります・・・・

 

03. the_archive_title テンプレートタグをカスタマイズ

テンプレートタグ「the_archive_title」が出力するタイトルがいまいちなので、今回のテーマ向けにカスタマイズしてみます。

 

functions.php に以下のコードを追記。
※デザイン上不要な日本語化も無効にしています。

 

Webブラウザで先ほどのページを見ると、以下のようになります。

CategoryArchive

 

例えばタグのアーカイブだと、

TagArchive

月別のアーカイブだと、

MonthlyArchive

・・・といった感じに、動的にタイトルが変化してくれます。

SimpleJournal – 投稿のページテンプレート single.php の作り込み

今回は投稿の詳細を表示するためのページテンプレート single.php を作りこんでいきたいと思います。

いじるのは、以前に作成した以下のファイル。

single.php

 

まずはヘッダー部分とフッター部分、投稿のタイトルと本文をテンプレートタグで置き換えます(こちらこちらでやった手順と一緒ですが、ページネーション用のテンプレートタグは利用しません)。

 

vagrantを起動してWordPressの管理画面にログインし、以下のような投稿を新規追加します。

Post Entry

 

この投稿のパーマリンクをクリックすると、single.php が適用された以下のような画面が表示されます。

Preview Entry

 

ただし現状は、投稿ページの下の方に表示するコメントの一覧やコメントフォームは静的HTMLのままですので、次回以降、テンプレートタグを組み込むことで作りこんでいこうと思います。

Preview Entry 02

Simple Journal – 投稿が1件もない場合の表示をつくりこみ

今回は、サイトに登録されている投稿(ステータスが「公開」のもの)が0件だった場合のトップページの表示をつくりこみたいと思います。

 

まずはさくっと、index.php を以下のように編集。

表示すべき投稿が1件もない場合、画面に「投稿がありません。」と表示するようにしています(52行目参照)。

ちなみに投稿があるかどうかを判定する際には以下の関数を利用します。

have_posts

投稿があるかどうかをチェッックし、ある場合は true を、ない場合は false を返します。

WordPressサイトの管理画面にログインし、現在登録&公開している投稿をすべてゴミ箱に移動した場合のサイトのトップページは以下。

No Post

ちょっと味気ないですが、メッセージが表示されるようになりました。

 

このままだとさすがにちょっと寂しすぎるので、最終的には以下のようにしてみました。

No Post 02

 

次回は、固定ページや投稿ページのテンプレートファイルを作りたいと思います。