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以外でも活用できますね。




コメントを残す