まずはタクソノミーとタームの整理。
通常の投稿タイプのカテゴリー
タクソノミー | ターム |
category | いちご みかん りんご |
カスタムタクソノミー
タクソノミー | ターム |
地域 | 北海道 東北 関東 … … |
テンプレートの種類
優先順位
- taxonomy-‘タクソノミーの名前’.php
- taoxnomy.php
- archive.php
- index.php
テンプレート内で使いそうなタグ
<?php single_term_title(); //所属するターム名 echo $taxonomy; //所属するタクソノミー名 echo $term; //所属するタクソノミーターム名(termのslug) ?>
もっとややこしいのは…
<?php /////////////////////////////// $args = array ( 'public' => true, '_builtin' => false ); $taxonomies = get_taxonomies( $args, 'names' ); foreach ( $taxonomies as $taxonomy_name ) { echo '<p>' . $taxonomy_name . '</p>'; } //////////////////////////////// $args = array ( 'public' => true, '_builtin' => false ); $taxonomies = get_taxonomies( $args, 'objects' ); foreach ( $taxonomies as $taxonomy ) { echo '<p>post_type=' . $taxonomy->object_type[0] . ': ' . $taxonomy->name . ' => ' . $taxonomy->label . '</p>'; } //////////////////////////////// $args = array ( 'public' => true, 'object_type' => array ( 'events' ) ); $taxonomies = get_taxonomies( $args, 'objects' ); foreach ( $taxonomies as $taxonomy ) { echo '<p>' . $taxonomy->name . ' => ' . $taxonomy->label . '</p>'; } ?>
出力結果
//////// course area instructor //////// post_type=events: course => 講座レベル post_type=events: area => 地域 post_type=events: instructor => 講師名 //////// course => 講座レベル area => 地域 instructor => 講師名
テンプレートを taxonomy.php で統一して、ページタイトルだけ
<h1><?php if($taxonomy == 'course'){echo '講座一覧:'; single_term_title();} elseif($taxonomy == 'instructor'){echo '講座一覧:'; single_term_title(); echo ' 開催';} elseif($taxonomy == 'area'){echo '講座一覧:'; single_term_title(); echo ' エリア';} ?></h1>
とすると管理が楽。
参考サイト:
【WordPress】所属しているタクソノミー名表示/他
[WordPress] タクソノミー情報を取得する