タグに属する記事一覧を表示するtag.phpを作る [WordPressテーマ作成の手順14]
今回は、各タグに属する記事を一覧に表示するテンプレート「tag.php」を作る。
手順はスゴく簡単。WordPressのテーマ作成13で作った「category.php」をコピーして「tag.php」という名前にして、タイトル部分の背景色などを変えるだけ。同じフォーマットなので。
スポンサーリンク
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ってオートマティック!
Leave a Comment