【wordpress】タクソノミー 系の取得の備忘録
タクソノミー 系の取得をよく忘れてしまいがちなのでメモ。
カスタム投稿アーカイブページで全てのタームを取得
<div class="category">
<?php
$all_category = get_terms('{カスタムタクソノミー名}', array('hide_empty' => false,'orderby' => 'slug'));//'hide_empty' => falseで、空のタームも出力する
if ($all_category) {
foreach ($all_category as $value) {
echo '<span><a href="'.$value->slug.'">'.$value->name.'<a></span>';
?>
<?php }
} ?>
</div>
hide_empty
をfalseにすることで、空のタームも出力する。アーカイブや検索フォームなどでよく使いました。'orderby' => 'slug'
でslugの順で並び替えます。orderbyのデフォルト値はname順です。
カスタム投稿シングルページで所属するタームを取得
<ul class="category-list">
<?php
$post_ID = get_the_ID();
$taxonomy_name = '{カスタムタクソノミー名}';
$category_term = wp_get_post_terms($post_ID, $taxonomy_name, array('orderby' => 'slug'));
if ($category_term) {
foreach ($category_term as $value) {
$url = home_url('/'.$taxonomy_name. '/' . $value->slug.'/');
echo '<li><a href="'.$url.'">'.$value->name.'</a></li>';
}
} ?>
</ul>
■取得のみ。ソートできない
get_the_terms({post ID},{タクソノミー 名})
■オプションを入れることでソートできる
wp_get_post_terms({post ID},{タクソノミー 名},{オプション})
※オプションは配列
参考サイト
関数リファレンス/wp get post terms - WordPress Codex 日本語版