このエントリーをはてなブックマークに追加

カスタム投稿のタクソノミーページ、シングルページでタームによって条件分岐
タクソノミーページの場合、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'); ?>

2012.09.29 投稿 2015.04.05 更新

新しい情報を追記している場合はありますが、古い情報の修正はしていません。投稿日・文中の日付を参照してください。

Recent Articles