wordpress
WordPress 非プラグイン タグ一覧の五十音順並び替え(ACFplは使用)
最終更新日: 2023年11月25日
とある案件でタグ一覧を自動で五十音順に並べる必要(UI上だけね)が起きた。
タグはカテゴリー代わりに使う=固定のタグに対しては各種情報をACFで付帯させ呼び出した際表示させるものだが、ACFでふりがなの欄を作り、それを呼び出して一覧表示を五十音順にするもの。
例えば市町村一覧をタグ付けにより表示させる場合、五十音順の方がUIは良いわけで、日本語特有のものだがユーザーの利便性が良くなるのは微細な影響かもしれないが後に出てくるもの(と思う、Googleの検索アルゴリズムにそれを評価するものはないと思うが・・・)。
<?php
$furigana_field_name = 'c_furigana'; // ACFのフィールド名
$tag_args = array(
'taxonomy' => 'post_tag',
'hide_empty' => false, // 空のタグも表示
'orderby' => 'name',
'order' => 'ASC',
);
$term_list = get_terms($tag_args);
$tag_array = array();
foreach ($term_list as $term) {
$tag_furigana = get_field($furigana_field_name, 'post_tag_' . $term->term_id);
$tag_array[$term->name] = $tag_furigana;
}
asort($tag_array);
foreach ($tag_array as $term_name => $tag_furigana) {
$term = get_term_by('name', $term_name, 'post_tag');
echo "<li><a href='" . get_term_link($term, 'post_tag') . "'>" . $term_name . "</a></li>";
}
?>
ACFのフィールドはc_furiganaとしてある、ここは作ったフィールドに置き換える。
ACFについて言えば、無償版(有償版は知らん)では設定画面にフィールドを作るなどできない。
当スタジオでは作っているが、コードを書くのが煩わしい。
プラグイン不使用でカスタムフィールドを作るのは煩わしい作業なので、基本プラグインを使わない主義の当スタジオだが作業効率からACFを使う。
プラグインの怖さは開発が停まるとプラットフォームのバージョンアップにいつか付いて行けなくなる、ましてやphpのバージョンアップもあるという2重の注意要件があるが、ACFはユーザーも多いPLなので当面そういった心配はないと考えている。
話を基に戻す。
あまりタグ一覧の成形などあまり使うものではないが、ポータルサイトなどを構築しているとタグの手も借りたくなる。
というかサイト内検索窓など検索方法を複数使う時にはカテゴリーで分けるよりタグで分けた方が、システムを組みやすい。
タグで組んでもページパスに検索ワードを日本語表示、canonicalも同様、titleなどmetaタグやjsonなどもきっちりパスなどを示せるのでSEO上問題はない(今更、日本語URLの優位性など微々たるものだがあるとロングテール上良い、indexされるかは別だが・・・されるときはされるのだ)。