get_the_tags()関数で取得したタグ一覧を出力する際に、並び順を指定する方法をご紹介いたします。

デフォルトではタグ名の昇順になっているので、出力順を並べ替えたいケースもあると思います。

get_the_tags()で取得したタグ一覧を並べ替えて出力する方法

基本形

並び順を指定しない場合は、下記のようにget_the_tags()でタグ一覧を取得し、ループでそれぞれのタグを出力させます。

$tags = get_the_tags();
if ($tags) {
  foreach ($tags as $tag) {
    echo '<a href="' . esc_url(get_tag_link($tag)) . '">' . esc_html($tag->name) . '</a>';
  }
}

タグの出力順を変えたい場合は、取得したタグをusort関数で並べ替えてからループを回すようにします。

タグ名の昇順

タグ名の昇順で並べ替える場合は、下記のように指定します。(デフォルトと同じ並びになるはずなので、指定する意味はないかもですが)

<?php
$tags = get_the_tags();
if ($tags) {
  usort($tags, function ($a, $b) {
    return strcmp($a->name, $b->name);
  });
  foreach ($tags as $tag) {
    echo '<a href="' . esc_url(get_tag_link($tag)) . '">' . esc_html($tag->name) . '</a>';
  }
}

タグ名の降順

タグ名の降順で並べ替えるには、下記のように指定します。

$tags = get_the_tags();
if ($tags) {
  usort($tags, function ($a, $b) {
    return strcmp($b->name, $a->name);
  });
  foreach ($tags as $tag) {
    echo '<a href="' . esc_url(get_tag_link($tag)) . '">' . esc_html($tag->name) . '</a>';
  }
}

タグIDの昇順

タグIDの昇順で出力したい場合は、下記のように指定します。

$tags = get_the_tags();
if ($tags) {
  usort($tags, function ($a, $b) {
    return $a->term_id - $b->term_id;
  });
  foreach ($tags as $tag) {
    echo '<a href="' . esc_url(get_tag_link($tag)) . '">' . esc_html($tag->name) . '</a>';
  }
}

タグIDの降順

タグIDの降順で出力したい場合は、下記のように指定します。

$tags = get_the_tags();
if ($tags) {
  usort($tags, function ($a, $b) {
    return $b->term_id - $a->term_id;
  });
  foreach ($tags as $tag) {
    echo '<a href="' . esc_url(get_tag_link($tag)) . '">' . esc_html($tag->name) . '</a>';
  }
}

あとがき

usort関数を使えば、タグだけでなくカテゴリーやカスタムタクソノミーの一覧も簡単に並べ替えることができます。

また、usort関数はWordPress独自の関数ではなくPHP標準の関数なので、WordPress以外でも活用できますね。

投稿者

himecasのアバター

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Table of Contents