• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

タグテンプレート

提供: WordPress Codex 日本語版
Tag Templatesから転送)
移動先: 案内検索

はじめに

ユーザーがサイトのタグの一つをクリックすると、デフォルトではクリックされたタグを使用する投稿のリストを時系列に、先頭の新着記事から古いものを下へと並べたページに移動します。この表示には、投稿全体を表示するか抜粋だけか、どの追加情報(タイトル、作成者、公開日、最終更新日等)を表示するかなど、様々な選択肢があります。テーマはそれぞれ異なる表示方法を選択していて、ユーザーはこれを変えられます。

ここではユーザーがサイトのタグページにアクセスした際の表示を変更する方法について解説します。変更にはテーマおよびテンプレートファイルを使用します。このためテンプレートファイルの初心者はまず テーマの使い方 および テンプレート入門 を参照してください。

タグアーカイブへのパーマリンクは、パーマリンクの使い方で設定できます。

どのテンプレートファイルが使用されるか?

ユーザーがタグページにアクセスした際の表示方法を変更するには、まず現在のテーマの中でどのファイルを使用して投稿が表示されるかを知る必要があります。この使用のルールはテンプレート階層と呼ばれます。

タグの場合、階層はとてもシンプルです。たとえば表示するタグのスラッグを slug とします。テンプレート階層の規定では、WordPress は現在のテーマディレクトリ内を以下の順番で検索し、最初に 見つかったテンプレートファイルを使用します:

  1. tag-slug.php
  2. tag-id.php
  3. tag.php
  4. archive.php
  5. index.php

すなわち tag-slug.php がなければ、WordPress は tag-id.php を探し ...、と続きます。

したがって ID が 6 のタグのページのデザインを現在のものから変えたければ(そして、他のタグページとも変えたければ)、tag-slug.php ファイルを作成します。すべてのタグページを他のアーカイブページ (日付別アーカイブや作成者別アーカイブなど) と変えたければ tag.ph ファイルを作成、変更します。すべてのアーカイブページのデザインを変えたければ archive.php ファイルを作成、変更します。そして index.php ファイルを変更すると、ブログ全体に影響します。

新しいファイルを作成する場合、自分より下の階層に存在するファイルをコピーすると良いでしょう。たとえばタグ "slug" 専用のページが必要な場合 tag.php ファイルのコピーから始めます。もし tag.php がなければ archive.php を使用します。

テーマディレクトリ内のどのテンプレートファイルを変更すればよいか分かりましたので、次にタグページのデザインを変更する例をいくつか挙げます。ここで「テンプレートファイルを編集」とあれば、これは前節で決定したテンプレートファイルを編集することを意味します。

タグページへのテキストの追加

投稿の上の固定テキスト

タグページ内の投稿一覧の上に固定テキストを表示したいとします。ここで "固定"とは、その下にどんな投稿が表示されても、あるいはどのタグを表示しても同じテキストが表示されることを指します。固定テキストを表示するにはテンプレートファイルの ループ 節の上に次のコードを挿入します:

<p>
これはタグページの先頭に表示されるテキストです。
</p>

タグページごとの異なるテキスト

もう少し複雑な例ではユーザーがアクセスしたタグページごとに異なるテキストを表示できます。まず "デフォルト" のテキストをメインの tag.php ファイルに追加し、先頭に特別なテキストを表示するタグごとに専用の tag-slug.php ファイルを作成し、「はじめに」で説明したように固有のテキストを挿入します。

アーカイブの最初のページのみに表示されるテキスト

指定したタグに関する投稿が 1 ページ以上存在する場合、タグアーカイブは複数のページに分割されます(ブログの管理画面の「設定」>「表示設定」の「1ページに表示する最大投稿数」の設定による)。ユーザーが結果の最初のページにアクセスしたときのみ固定テキストを表示するか、またはそれ以降のページで別のテキストを表示できます。

これには $paged WordPress 変数とこれを参照する PHP の if 文を使用します。$paged はページ番号に等しく、結果の最初のページは 1、次のページは 2 です。複雑に聞こえますが、そうでもありません。ループ の上に次のコードを置いてください。

<?php if ( $paged < 2 ) { 
<p>タグアーカイブの 1 ページ目用のテキスト。</p>
<?php } else { 
<p>タグアーカイブの 2 ページ目以降用のテキスト。
不要であれば削除</p>
<?php } ?>

タグ名

別の例としてページの先頭にタグ名を表示します。もしまだテンプレートに実装されていなければ、以下のようなコードを ループ の上に置いてください。

<p>タグ: <?php single_tag_title(); ?></p>

投稿のデザインの変更

抜粋か全文表示か

タグページのサイズを小さくしたい場合は、投稿ごとに内容すべてを表示するのではなく抜粋のみを表示できます。これにはテンプレートの ループ の中の the_content() を探し、the_excerpt() で置換します。おそらく次のように PHP タグ内にあるでしょう。

  <?php the_excerpt(); ?>
and
  <?php the_content(); ?>

逆に、現在テーマが抜粋を表示していて、これを全文表示に変えたければ、the_excerptthe_content で置換します。

投稿にリンクする画像の表示

タグアーカイブページのちょっと面白い変更として、投稿の内容を投稿にリンクする画像で置き換えてみます。まず投稿の抜粋セクションに画像を置く必要があります。以下はその手順です。 1つの投稿に対して

  1. ビジュアルエディタからテキストエディタに切り替える
  2. 「メディアを追加」をクリックし、投稿に画像を挿入する。このとき「サイズ」はフルサイズ、「リンク先」はなしを選択する。
  3. 挿入された HTML の img タグをコピーし、投稿編集画面の「抜粋」に貼り付ける。
  4. 投稿を編集し、不要であれば画像も削除し、公開する。
次にテンプレートファイルを変更する必要がありますが、ここで少しトリッキーなコードを使います。[[テンプレートタグ/the_excerpt_rss|the_excerpt_rss()] テンプレートタグは抜粋の前後に

タグを置きません。そこでこのテンプレートタグを使用して img HTMLタグを挿入し、リンク内に配置します。テンプレート内で the_content を次のコードで置き換えてください。

<a href="<?php the_permalink() ?>">
<?php the_excerpt_rss(); ?>
</a>

警告: この抜粋の利用方法は RSSフィードに影響を与えるかもしれません。抜粋の中にテキストの代わりに img タグを置くからです。したがって RSSフィードを利用する場合にはオプションを設定し、抜粋でなく、投稿の全文を RSSフィードに含めてください。

追加の情報

関連

テンプレート階層: カテゴリーテンプレート, タグテンプレート, タクソノミーテンプレート, ページテンプレート, 投稿タイプテンプレート, 投稿者テンプレート, 日付テンプレート, 検索テンプレート, 404 テンプレート, 添付ファイルテンプレート, ループテンプレート /en


関数リファレンステンプレートタグ目次もご覧ください。


<p id="original">最新英語版: WordPress Codex » Tag_Templates最新版との差分