タグに属する記事一覧を表示するtag.phpを作る [WordPressテーマ作成の手順14]

今回は、各タグに属する記事を一覧に表示するテンプレート「tag.php」を作る。
手順はスゴく簡単。WordPressのテーマ作成13で作った「category.php」をコピーして「tag.php」という名前にして、タイトル部分の背景色などを変えるだけ。同じフォーマットなので。

本日のINDEX

スポンサーリンク

category.phpをコピーしてtag.phpを作る

WordPressのテーマ作成13で作った「category.php」をコピーして「tag.php」という名前に変更。
このtag.phpという名のファイルがあれば、WordPressは「タグ別一覧」表示用テンプレートとして使用する。

アーカイブ用のarchive.phpでもいいんだけど

tag.phpで表示するタグ別一覧ページは、アーカイブ(archive)と呼ばれる「一覧ページ」の1つ。
WordPressのアーカイブには、
カテゴリー別、タグ別、日付別、著者別、カスタム分類別などがある。
これらを全部「archive.php」という名のテンプレートで表示することもできる。

デザインフォーマットを変えたい場合などには、
それぞれに「archive.php」より優先度の高いテンプレート名があるので、それを利用する。

  • category.php(カテゴリー別アーカイブページ用)
  • tag.php(タグ別アーカイブページ用)
  • date.php(日付別アーカイブページ用)
  • author.php(著者別アーカイブページ用)
  • taxonomy.php(カスタム分類別アーカイブページ用)

本ブログでは、カテゴリー別とタグ別は、タイトル部分の色などを変えたかったので、archive.phpではなく、個別のテンプレート(category.phpとtag.php)に分けることにした。

タグ一覧の表示用のテンプレートについて

WordPressはtag.phpがあれば、コレを使ってタグ一覧を表示する。これが無ければarchive.php、それも無ければindex.phpが使われる。

タグのスラッグやIDを指定したテンプレートを作れば、tag.phpより優先され、特定のタグだけに特定のテンプレートを使うことができる。
「tag-スラッグ.php」「tag-5.php(数字がID)」といった具合で「-(ハイフン)」でスラッグやIDをつないで指定。

例えば、tag-special.php というテンプレートを作っておけば、スラッグを「special」と指定したタグは、tag.phpがあってもこのテンプレートで表示される。
また、IDが5なタグなら、tag-5.php というテンプレートが適用される。
スラッグのほうがIDより優先度は高い。

タグのIDとは
管理画面の各タグの編集画面のアドレスバーで、「tag_ID=」で確認できる。
例えば、「http://○○○.com/wp-admin/edit-tags.php?action=edit&taxonomy=post_tag&tag_ID=5&post_type=post」だったら、IDは5。

テンプレートの種類と優先順位についてはこちら:
WordPress「テンプレート」の優先順位 | 超初心者のサーバー移転とドメイン移管&ついでにWordPressも!

タグ名を表示する部分を作る

tag.phpは、category.phpをほぼそのまま流用するので、編集は超簡単。
「タグ名」を出力するタイトル部分を修正するだけ。

本ブログではソースはこのように。

<div class="col-full">
  <div class="wrap-col">
    <section class="tagTtl clearfix">
    <h1><?php single_cat_title(); ?></h1>
    <p><img src="<?php bloginfo('template_url');?>/images/icon_tag_wht.png"/>tag archives</p>
    </section>
  </div>
</div>

*上記ソースの div.col-full, div.wrap-col は、本ブログのグリッドシステムによるものです。

テンプレートタグ「single_cat_title()」でタグ名を表示。(4行目)
これは、カテゴリー名も表示するタグなので、category.phpのまま。修正不要。

参考サイト:テンプレートタグ/single cat title-WordPress Codex 日本語版

category.phpと変えているのは、 section要素のクラス(3行目)を.tagTtlに変え、コレを使ってCSSで背景色のみ変更。
また、5行目のimg要素(アイコン)も変更。テキストも「tag archives」に変えた。

抜粋記事を表示する部分も、ページャーも、category.phpで設定したものをそのまま使うので、変更はコレだけでOK。
テンプレート名を「tag.php」にしただけで、タグの一覧を表示してくれるなんて、WordPressってオートマティック!

関連記事

WordPressの Embedカードのリンクを別ウィンドウで開く(PCのみ。スマホ・タブレットはそのまま)

WordPressの Embedカード(ブログカード)のリンクは、デフォルトでは同ウィンドウで開くようになっていますが、これを別ウィンドウ(別タブ)で開くように [記事を読む]

WordPressの Embedカードのスタイルを編集する方法2つ

前回の記事で、WordPress 4.5 の Embedカード(ブログカード)の「テンプレートの構成」や「HTML要素のクラス名」などを調べました。これを元に、 [記事を読む]

WordPress4.5で Embedカードの PHPファイルの構造がだいぶ変わったみたい

前回から WordPressの Embedカード(ブログカード)について調べたことをメモっています。 今回は Embedカードの PHPファイルの構造について [記事を読む]

Leave a Comment

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。

^