カテゴリー名の取得、他


テンプレートタグの覚書

カテゴリー名を取得してリンク付きで表示

<?php
foreach((get_the_category()) as $cat) {
$cat_id = $cat->cat_ID ;
break ;
}
$category_link = get_category_link( $cat_id );
?>
<a href="<?php echo $category_link; ?>" title="<?php echo $cat->cat_name; ?>"> <?php echo $cat->cat_name; ?></a>

メタタグにカテゴリー名を入れる

<meta name="keywords" content="~,<?php if (is_category()): ?><?php single_cat_title(''); ?><?php elseif (is_single()): ?><?php $cat = get_the_category(); $cat = $cat[0]; { echo $cat->cat_name;} ?><?php endif; ?>" />

カテゴリーのパーマリンクを取得 ~はカテゴリー名

<?php
$category_id = get_cat_ID( '~' );
$category_link = get_category_link( $category_id );
?><a href="<?php echo $category_link; ?>" title="xxxxx">xxxxx</a>

属しているカテゴリーから親カテゴリーまでをリンク付き、セパレーター付きで

<?php $cat = get_the_category(); echo get_category_parents($cat[0], true, ' > '); ?>

属しているカテゴリーの親カテゴリーのみを表示

<?php $cat = get_the_category(); $cat = $cat[0]; $catp = $cat->category_parent ; $catn = get_the_category_by_ID( $catp ); echo $catn ; ?>

or

<?php $cat = get_the_category(); $cat = $cat[0]; $catp = $cat->category_parent ; $catn = get_the_category_by_ID( $catp ); $catl = get_category_link( $catp ); ?><a href="<?php echo $catl; ?>" title="<?php echo $catn; ?>"><?php echo $catn; ?></a>

最下層のカテゴリーを取得

<?php $cats = get_the_category();
$current_cat = '';
foreach ( $cats as $cat ) {
	if ( ! $current_cat || cat_is_ancestor_of( $current_cat, $cat ) ) {
		$current_cat = $cat;
	}
} ?><a href="<?php echo get_category_link( $current_cat ); ?>"><?php echo $current_cat->cat_name; ?></a>
タームの場合、$cats = get_the_terms( $post->ID, 'taxonomy-name' ); で $current_cat->term_id、$current_cat->name

最下層のカテゴリーから親カテゴリーを取得し、そのIDで分岐 ↓親カテゴリーのIDが7の場合7と表示、こう書けば何階層あっても分岐できるはず。

<?php $cats = get_the_category();
$current_cat = '';
foreach ( $cats as $cat ) {
	if ( ! $current_cat || cat_is_ancestor_of( $current_cat, $cat ) ) {
		$current_cat = $cat;
	}
} if ( in_array(7, get_ancestors($current_cat->cat_ID, 'category') )) { echo '7'; } ?>

個別ページを表示せず、投稿リストからターム一覧の投稿タイトルにアンカーリンクを付けるため、タームを1つだけ取得

<a href="<?php $terms = get_the_terms($post->ID, 'taxonomy-name' ); if ( $terms && !is_wp_error( $terms ) ) { $term = array_pop($terms); echo  get_term_link($term->slug, 'taxonomy-name'); } ?>#<?php echo $post->ID; ?>"><?php the_title() ?></a>