この記事は 2022年1月5日 に投稿されました。
内容が古いかもしれません。ご注意ください。
※最後に更新されたのは 2022年1月5日 です。
内容が古いかもしれません。ご注意ください。
※最後に更新されたのは 2022年1月5日 です。
この記述でできること
子タームがあって、かつ記事数が0ではない場合に子タームのリンク付きリストを自動出力できます。
ソートはid順です。順番の任意変更する機能はありません。
多分…子ターム一覧を取得した配列をソートしないといけないですが、そこまでやってません。
タクソノミーとタームは命令が色々あってめんどくせ〜〜〜〜な〜〜
<?php
//タームの情報を取得
$queried_object = get_queried_object(); //現在の画面の投稿オブジェクト
$term_parent = $queried_object->parent; //親のID
$current_term_id = $queried_object->term_id; //表示中のタームのID
$current_term_taxonomy = $queried_object->taxonomy; //表示中のタームが属するタクソノミースラッグ
if( $term_parent ) {
//親IDの有無で子の取得方法を変更 自分のを使うか親を使うか
$child_terms = get_term_children( $term_parent, $current_term_taxonomy );
//全部の一覧であるかでクラス名分岐
$parent_current_property = '';
//全部の一覧へのリンク取得
$parent_archive_url = get_term_link( $term_parent );
} else {
$child_terms = get_term_children( $current_term_id, $current_term_taxonomy );
$parent_current_property = ' class="current"';
$parent_archive_url = get_term_link( $current_term_id );
}
//小ターム全体の数を数えてナビの表示分岐へ利用
$children_number;
foreach ( $child_terms as $child_term ) {
$count_term = get_term_by( 'id', $child_term, $current_term_taxonomy );
$children_number = $children_number + $count_term->count;
}
//小タームが存在し、記事が0件でなければサブナビを表示
if( !empty( $child_terms && $children_number !== 0 ) ){
echo '<ul>';
echo '<li><a href="' . esc_url($parent_archive_url) . '"' . $parent_current_property . '>すべて</a></li>';
foreach ( $child_terms as $child_term ) {
$term = get_term_by( 'id', $child_term, $current_term_taxonomy );
if( $current_term_id === $child_term ){
$child_current_property = ' class="current"';
} else {
$child_current_property = '';
}
if( $term->count !== 0 ){ //記事数($term->count)が0じゃない場合だけ出す
echo '<li><a href="' . get_term_link( $child_term, $current_term_taxonomy ) . '"' . $child_current_property . '>' . $term->name . '</a></li>';
}
}
echo '</ul>';
}
?>
参考
大枠の方法の参考
新潟ホームページ制作【マザーシップ】フリーランス(SOHO)
WordPress:タームのアーカイブページで、タイトルやスラッグなどの各種情報を取得・表示する方法
NxWorld
いずれもコピペだけでは不安なので、各関数についてリファレンスを参照の上var_dumpして確認しながら作成。
各関数について(未だにCodeXで申し訳ないです)
WordPress Codex 日本語版
WordPress Codex 日本語版
WordPress Codex 日本語版
WordPress Codex 日本語版