wordpress

【WordPress】タグの取得とタグ一覧やタグ別一覧ページの表示

【Wordpress】タグの取得とタグ別一覧ページの表示や出力方法

 

WordPressでサイトを作成中、記事に設定したタグを出力したり、タグ別一覧ページを表示する際に困ったことはありませんか?

既存のテーマを使用している場合はタグを設定するだけで済みますが、自分でテーマを作成している場合は意外と面倒です。

 

管理画面で設定したタグを投稿記事に出力させるには?

タグ別一覧ページを表示させるまで、色々な工程があって大変だよね?

 

今回は、タグの出力方法からタグ一別覧ページの作成の方法までを一通り初心者向けに解説します。

こんな人にオススメ!

  1. タグってそもそも何?という方
  2. 設定したタグの情報を取得して、出力する方法が知りたい方
  3. タグ別一覧ページの表示方法が知りたい方
できるだけわかりやすく解説するので、ぜひ最後まで読んでみて下さいね!

目次

WordPressのタグとはカテゴリーとタグの違いは?タグを使用するメリットタグの取得や表示の注意点タグの表示(ループ内)デフォルトの状態で出力出力形式を変更して出力アイコンを付けて出力タグの数を指定して出力
たぐ一覧リストの表示(ループ外)リンク付きで出力リンク付きで記事数も出力タグ数を指定して出力タグ別一覧ページとはタグ別一覧ページの作成方法タイトルを動的に変更




  📖目次に戻る

WordPressのタグとは

WordPressの「タグ」とは、記事やページに付けることができる「分類を表すラベル」のようなものです。

SEO(検索エンジン最適化)にも役立ち、適切なタグを付けることで、読者にとって有用な情報を提供することができる便利な機能です。

  📖目次に戻る

カテゴリーとタグの違いは?

記事を分類するという意味では、「タグ」と「カテゴリー」は似ていますが、明確な違いがあります。

「カテゴリー」は関連した記事で分類するのに対し、「タグ」は記事内のキーワードで分類する役割を担っています。

 

例えば、料理ブログで「カテゴリー」を使用すると、記事を分ける際に「メインディッシュ」「デザート」「おつまみ」といった大まかな分類が可能です。

タグとカテゴリーの違いは?の説明イラストその1

記事をフォルダごとに分けるイメージだね!

 

一方、「タグ」を使用すると、カテゴリーで分類された記事に対し、「肉料理」「魚料理」「簡単レシピ」など、さらに細かく分類することができます。

タグとカテゴリーの違いは?の説明イラストその2

各記事に対して付箋(ふせん)を貼るイメージだね!

 

他にも「カテゴリー」と「タグ」には以下のような違いがあります。

カテゴリータグ
1ページに設定できる数1つ複数
投稿ページへの設定必須任意
固定ページへの設定必須できない
階層化(親子関係化)できるできない

 

したがって、カテゴリーとタグの使い分け方としては、「カテゴリー」はブログ全体のテーマや目的に沿った分類する場合に使用し、「タグ」は記事やページの詳細な分類を行う場合に使用すると良いでしょう。

 

  📖目次に戻る

タグを使用するメリット

タグを使用するメリットは、以下の3つが挙げられます。

  1. サイトのSEO対策に役立つ
  2. カテゴリーとの関連付けができる
  3. 目的の記事が見つけやすくなる

 

タグを適切に使用することで、記事のキーワードを強調することができ、サイト内のコンテンツがより検索エンジンに適したものとなります。

また、カテゴリーとの関連付けができ、同一のタグのついた記事一覧ページが作成されるので、ページを横断的に閲覧可能になります。

タグ別一覧ページの説明イラスト

 

一度決めたら変更しづらいカテゴリーと違って、タグは柔軟に記事を分類できるから便利だね!

  📖目次に戻る

タグの取得や表示の注意点

管理画面で投稿記事に設定したタグを出力する場合、「WordPressループ内」「WordPressループ外」では出力方法が異なります

例えば、タグを表示する「the_tags();」は、現在の投稿のタグを表示するテンプレートタグで、ループ内でのみ使用可能です。

一方、「get_tags」は全てのタグ取得するテンプレートタグなので、何も加工せずにループ内で使用すると投稿以外のタグも表示してしまうので注意が必要です。

 

以下が、タグの出力に関係するテンプレートタグの簡単な概要です。

効果使用場所
the_tags();現在の投稿のタグを表示ループ内
get_tags();指定した条件のタグ(オブジェクト)を取得
投稿以外のタグ全体を取得
どこでも可
(主にループ外で使用)
get_the_tags();投稿のタグ情報(オブジェクト)を取得
現在の投稿のタグ情報を取得
投稿 ID を指定しない場合はループ内のみ
投稿 ID を指定する場合はどこでも可
(主にループ内で使用)

今回は、よく使用するテンプレートタグを中心に説明しました、それぞれ状況に応じて使い分けるようにしましょう。

 

記述方法が違うと、何も表示されなかったりエラーが出るから気をつけようね!

  📖目次に戻る

タグの表示(ループ内)

WordPressループ内でタグを出力する場合

投稿に付けたタグを、記事一覧や投稿記事などのWordPressループ内で、リンク付きで出力する場合の説明をします。

  📖目次に戻る

デフォルトの状態で出力

「the_tags」テンプレートタグを使用してデフォルトの状態でタグ出力する場合

投稿に付けたタグを、WordPressループ内リンク付きで出力する場合は、「the_tags();」を使って行います。

<?php the_tags(); ?>

the_tags(); の引数に何も指定しないまま出力すると、「タグ:」というラベルが自動で付与された状態でリンク付きで出力され、タグが複数ある場合は、「,」(カンマ)で区切られて出力されます。

例えば、タグが3つの場合は以下のように出力されます。

タグ:
<a href="タグ一覧ページのURL" rel="tag">タグ名</a>,
<a href="タグ一覧ページのURL" rel="tag">タグ名</a>,
<a href="タグ一覧ページのURL" rel="tag">タグ名</a>

 

ulタグやliタグで囲って出力したり、クラスを指定した場合は、次に紹介する方法を試してみてね!

  📖目次に戻る

出力形式を変更して出力

「the_tags」テンプレートタグを使用して出力形式を変更してタグ出力する場合

投稿に付けたタグをulやliで囲んだり、区切り文字をなどを変更するような出力形式を変更して出力する場合は、the_tags(); に次のような引数を指定します。

<?php the_tags( $before , $sep , $after ); ?>

$beforeタグ一覧の前に表示する文字列。初期値 = タグ:(英語ではTags:)。
$sep各タグリンク間に表示する文字列・記号。初期値 = コンマ,)。
$afterタグ一覧の後ろに表示する文字列。初期値 = なし

 

タグ一覧の前後をカギカッコ(「」)で囲んで、タグの間をスラッシュ「/」で区切る場合は、次のように記述します。

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

例として、タグが3つの場合は以下のように出力されます。


<a href="タグ一覧ページのURL" rel="tag">タグ名</a> /
<a href="タグ一覧ページのURL" rel="tag">タグ名</a> /
<a href="タグ一覧ページのURL" rel="tag">タグ名</a>

 

これらの引数には、HTMLのタグを指定することも可能です。

例えば、クラスが指定されたulとliに囲まれたタグを出力する場合は、次のように記述します。

<?php the_tags( '<ul class="クラス名"><li class="クラス名">' , '</li><li class="クラス名">' , '</li></ul>' ); ?>

例として、タグが3つの場合は以下のように出力されます。

<ul class="クラス名">
<li class="クラス名"><a href="タグ一覧のURL" rel="tag">タグ名</a></li>
<li class="クラス名"><a href="タグ一覧のURL" rel="tag">タグ名</a></li>
<li class="クラス名"><a href="タグ一覧のURL" rel="tag">タグ名</a></li>
</ul>

  📖目次に戻る

アイコンを付けて出力

「the_tags」テンプレートタグを使用してアイコンを付けてタグ出力する場合

the_tags(); の引数に画像やアイコンを指定することも可能です。

例えば、spanで囲われたそれぞれのタグにアイコンを付ける場合は、次のように記述します。(例:tag.pngをつける場合)

<?php the_tags('<span><img src="' . get_template_directory_uri() . '/assets/img/tag.png" alt="">' , '</span><span><img src="' . get_template_directory_uri() . '/assets/img/tag.png" alt="">' , '</span>'); ?>

例として、タグが3つの場合は以下のように出力されます。

<span><img src="画像のパス" alt=""><a href="タグ一覧のURL" rel="tag">タグ名</a></span>
<span
><img src="画像のパス" alt=""><a href="タグ一覧のURL" rel="tag">タグ名</a></span>
<span
><img src="画像のパス" alt=""><a href="タグ一覧のURL" rel="tag">タグ名</a></span> 

  📖目次に戻る

タグの数を指定して出力

「get_the_tags」テンプレートタグを使ってループ内でタグの数を指定して出力する場合

タグの数が増えることによりレイアウトが崩れてしまう場合は、出力するタグの数を指定することも可能です。

その場合は、「get_the_tags();」を使ってタグの情報を取得し、その取得した情報を「foreach文」を使って数を指定して一つずつ出力します。

例として、3つまで出力する場合の記述方法を見てみましょう。(例:ulとliに囲われたタグを出力する場合)

<?php
$i = 0; //カウントを数える変数
  $tags = get_the_tags();
?>
<ul>
<?php
  if( $tags ){ //タグが一つでも設定されていたら出力
    foreach( $tags as $tag ) {
      if( $i >= 3 ){ // 3回出力したら
        break; //ループを終了する
     }
?>
<li><a href="<?php echo get_tag_link( $tag->term_id ); ?>"><?php echo $tag->name; ?></a></li>
<?php
$i++; //カウントを1加算する
    }
  }
?>
</ul>

出力する数を指定するために、foreach文の外でループ回数をカウントするための変数 $i = 0; を定義しています。

foreach文の中では、ループされるたびに数値が1ずつ加算される演算子$i++;と、if文には変数が以上になったらという条件式( $i >= 3 )と、foreach文を抜けるための命令 break; を記述しています。

 

出力する数を3以外の数字にしたい場合は $i >= 3 の数値を変更してね!

foreach文について詳しく知りたい人はコチラの記事も見てみてね!




  📖目次に戻る

タグ一覧リストの表示(ループ外)

WordPressループ外でタグ一覧を表示する

サイドバーやフッターなど、WordPressループ外でタグ一覧リストを出力する場合の説明をします。

  📖目次に戻る

リンク付きで出力

WordPressループ外でリンク付きでタグ一覧を表示する

WordPressループ外で、投稿に付けたタグのタグ一覧リストを出力する場合は、まずは「get_tags();」を使ってタグの情報を取得します。

そして、その取得したタグの情報を「foreach文」を使って一つずつ出力することでタグ一覧リストを表示します。

<ul>
<?php
$posttags = get_tags();  //タグの情報を取得
if ($posttags) {
  foreach($posttags as $tag) {
    echo ' <li><a href="' . get_tag_link($tag->term_id) . '">' . $tag->name . '</a></li>';
  }
}
?>
</ul>

foreach文」のループの中では、「get_tag_link();」の引数に「$tag->term_id」を指定してタグ一覧のURLを出力し、「$tag->name」の部分ではタグ名を出力しています。

例として、タグが3つの場合は以下のように出力されます。

<ul>
<li>
<a href="タグ一覧のURL">タグ名</a></li>
<li>
<a href="タグ一覧のURL">タグ名</a></li>
<li>
<a href="タグ一覧のURL">タグ名</a></li>
</ul> 

 

  📖目次に戻る

リンク付きで記事数も出力

WordPressループ外でリンク付きで記事数を指定してタグ一覧を表示する

タグ一覧リストに加えて記事数を表示する場合は、前項のforeach文のループ内に $tag->count を追加します。

<ul>
<?php
$posttags = get_tags();  //タグの情報を取得
if ($posttags) {
  foreach($posttags as $tag) {
    echo ' <li><a href="' . get_tag_link($tag->term_id) . '">' . $tag->name . '</a> ('. $tag->count .')</li>';
  }
}
?>
</ul>

例として、タグが3つの場合は以下のように出力されます。

<ul>
<li>
<a href="タグ一覧のURL">タグ名</a> (数字)</li>
<li>
<a href="タグ一覧のURL">タグ名</a> (数字)</li>
<li>
<a href="タグ一覧のURL">タグ名</a> (数字)</li>
</ul> 

 

  📖目次に戻る

タグの数を指定して出力

WordPressループ外でタグの数を指定してタグ一覧を表示する

タグ一覧リストのタグの表示数を指定したい場合は、「get_terms」を使用し、引数のパラメータに数を指定します。

例として、3つまで出力する場合の記述方法を見てみましょう。(例:ulとliに囲われたタグを出力する場合)

<ul>
  <?php
  $args = array(
   'orderby' => 'count',
   'order' => 'desc',
   'number' => 3
  );
  $tags = get_terms( 'post_tag' , $args );
  foreach( $tags as $value ) {
   echo '<li><a href="'. get_tag_link( $value->term_id ) . '">' . $value->name . ' (' . $value->count . ')</a></li>';
  }
  ?>
</ul>

今回は記事数の多いもの順に3つ出力しました。

記事数の少ないもの順に表示する場合は、'order' => 'desc', のdescを「asc」に、3以外の数値を指定する場合は 'number' => 3 の数値を変更して下さい。

 

get_termsの詳しい指定方法を知りたい方は、公式リファレンスを参考にしてね!

  📖目次に戻る

タグ別一覧ページとは

タグ別一覧ページとは

タグをクリックすると表示される、そのタグに関連付けられた記事の一覧ページのことです。

例えば料理ブログで、「蒸焼き」というタグをクリックすると、「蒸焼き」というタグの付いた記事のみを、一覧で表示してくれる便利な機能です。

  📖目次に戻る

タグ別一覧ページの作成方法

タグ別一覧ページは、「tag.php」という名前のテンプレートファイルを用意することで作成することができます。

タグ別一覧ページの簡単な作成方法としては、既に作成済みの「category.php」を複製して「tag.php」に名前を変更する方法です。

もし「tag.php」を作成しない場合でも、「archive.php」「index.php」がその役割を担います。

  📖目次に戻る

タイトルを動的に変更

タグ別一覧ページでタイトル部分を動的に変更する

タグ別一覧ページのタイトルの部分を動的に変更する場合は、「single_cat_title();」テンプレートタグを使用します。

<?php single_cat_title(); ?>

ただし、このテンプレートタグはループの外側でしか使用できないので注意しましょう。

 

「single_cat_title();」について詳しく知りたい方はコチラから!

 📖目次に戻る

最後に

今回はWordPressの「タグの出力」「タグ一覧の出力」「タグ別一覧ページの表示」について解説しました。

WordPressについて、他にも詳しく知りたい方は他の記事もチェックしてみて下さいね。

WordPress

WordPressの基本的な使い方について解説した記事一覧ページです。 イラストを交えてやさしく解説していますので、ぜひご覧ください。

続きを見る

最後までお読みいただき、ありがとうございました!



-wordpress
-