情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
カスタム投稿のタクソノミーページ、シングルページでタームによって条件分岐
タクソノミーページの場合、if (is_tax( ‘タクソノミー’, ‘タームのスラッグ’ ))
シングルページの場合、$terms = wp_get_object_terms($post->ID,’タクソノミー’); foreach($terms as $term){$slug = $term->slug;} でスラッグを取得し、if ($slug == ‘タームのスラッグ’)
*メモ タームを取得してスラッグを表示 $term = array_shift( get_the_terms( get_the_ID, ‘タクソノミー’ ) ); echo $term->slug;、タームページではget_query_var(‘タクソノミー’)、さらにターム名を表示するには
$term_slug = get_query_var('taxonomy'); $term_info = get_term_by('slug',$term_slug,'taxonomy'); echo $term_info->name;
追記:functions に以下を設定すると has_taxonomy(‘タームスラッグ’) の分岐が使える。*taxonomy部分を設定したタクソノミー名で
function has_taxonomy( $taxonomy, $_post = null ) { if ( empty( $taxonomy ) ) return false; if ( $_post ) $_post = get_post( $_post ); else $_post =& $GLOBALS['post']; if ( !$_post ) return false; $r = is_object_in_term( $_post->ID, 'taxonomy', $taxonomy ); if ( is_wp_error( $r ) ) return false; return $r; }
2013.1追記
タクソノミー用テーマで親タームがある時に親ターム名を表示 *タクソノミー名item の場合
<?php $term_slug = get_query_var('item'); $term_info = get_term_by('slug',$term_slug,'item'); echo $term_info->name; ?> | <?php if ($term_info->parent) { $parent = get_term( $term_info->parent,'item' );echo $parent->name . ' | ';} ?>
タームページで現在のタームを取得するにはget_queried_object、親や子を取得するのも楽だし、ターム名も$now->name のようにecho できる。
<?php $now = get_queried_object(); $parent = get_term($now->parent, 'taxonomy-name'); $children = get_term_children( $now->term_id, 'taxonomy-name'); ?>