wordpress 記事が属するカテゴリーとタグを表示

2013年4月22日

記事が属するカテゴリーは the_category() で、タグは the_tags() で出力することができる。

「CATEGORY:カテゴリー名 | TAG: タグ名」という形で表示する例

複数のタグやカテゴリーを表示するときは「,(カンマ)」で区切るように指定する。

また、カテゴリーやタグを指定せずに投稿を保存した場合、

  • 「カテゴリー」は初期状態で用意されたカテゴリー(未分類)に分類される
  • 「タグ」は未指定のままになる

つまり、カテゴリーは必ず存在するが、タグは存在しない可能性があるので「| TAG:」という文字列は、タグが存在する場合のみに出力する。

<p class="postmeta">
CATEGORY: <?php the_category(', '); ?>
<?php the_tags(' | TAG: ', ', '); ?>
<?php //投稿にタグを付けていない場合は、通常 the_tags 関数は何も出力しない ?> 
</p>

または、

<p class="postmeta">
CATEGORY: <?php the_category(', '); ?>
<?php if(has_tag()): ?>
| TAG: <?php the_tags('', ', '); ?>
<?php endif; ?>
</p>
the_category( $sep, $parents, $post_id )
その投稿が属するカテゴリーの一覧を出力する。
このタグはループの中で使わなければならない。
パラメータ(全てオプション)
 $sep セパレータ(文字列):個々のカテゴリーを区切る文字列。
      デフォルトでは「空」で、ul 要素でリンクを出力
 $parents 親子関係(文字列):カテゴリリンクで「親子」関係をどう表示するか。
      デフォルトは'single'で子カテゴリのみへのリンクを表示。
      'multiple' を指定すると、親・子カテゴリへのリンクを分けて表示
 $post_id 投稿ID(整数):カテゴリを取得したい投稿 ID
      デフォルトは「false」(現在の投稿)
戻り値:なし
  • パラメータなしで呼び出した場合、カテゴリーの一覧は順序なしリスト( ul )で出力される。
  • 個々のカテゴリーを区切る文字(セパレータ)を指定すると、カテゴリーの一覧は「ul/li 要素」では囲まれず、個々のリンクの間に、セパレータの文字列が出力される。
the_tags( $before, $sep, $after )
個々の投稿に付けたタグを出力する
このタグはループの中で使わなければならない。
パラメータ(全てオプション)
 $before 前文字列(文字列):タグ一覧の前に表示する文字列。
               デフォルトは「Tags(タグ):」。
 $sep セパレータ(文字列): 各タグの間に表示する文字列。
               デフォルトは、カンマ(, )。
 $after 後文字列(文字列):最後のタグの後ろに表示する文字列。
              デフォルトなし。
戻り値:なし

the_tags()の基本的な使い方(パラメータなしの場合)

  • 「タグ:」という文字列の後に、投稿に付けたタグの一覧が、カンマで区切られて出力される
  • デフォルトの「タグ:」を変更するには、前文字列パラメータを指定する
  • 個々のタグは、そのタグのアーカイブページへのリンクになる
  • 投稿にタグを付けていない場合は、通常 the_tags 関数は何も出力しない

前文字列/セパレータ/後文字列を指定してリストとして出力する例

タグの一覧を出力する際に、その前後と個々のタグの間に、任意の文字列を出力できる。
次のように記述すると、タグの一覧を「ul/li」要素で出力できる。

<?php the_tags( '<ul><li>', '</li><li>', '</li></ul>'); ?>

<ul>
 <li>タグ1</li>
 <li>タグ2</li>
 …
</ul>