web関連

【wordpress】シングルページでカテゴリーとタームの出力方法

【wordpress】シングルページでカテゴリーとタームの出力方法

シングルページ(single.php)でカテゴリーやタームをループ外で出力したかった時の備忘録

single.phpでカテゴリーの出力方法

記事に設定されたカテゴリー1つだけ取得する場合

「投稿」の記事に設定されたカテゴリー情報1つだけ取り出すとき

<?php 
$category = get_the_category();
echo $category[0]->name;//カテゴリー名
echo $category[0]->slug;//カテゴリースラッグ
echo $category[0]->category_nicename;//カテゴリースラッグ
echo $category[0]->term_id;//カテゴリーID
echo get_category_link( $category[0]->term_id );//カテゴリーリンク
?>
スラッグの取得方法2パターンあったんで一応どっちも書いておいた

記事に設定された複数のカテゴリー情報を取得する場合

「投稿」の記事に設定されたカテゴリー情報全部取り出すとき

<?php 
$category = get_the_category();
foreach ($category as $cat) {
echo $cat->name;//カテゴリー名
echo $cat->slug;//カテゴリースラッグ
echo $cat->category_nicename;//カテゴリースラッグ
echo $cat->term_id;//カテゴリーID
echo get_category_link( $cat->term_id );//カテゴリーリンク
}; ?>

複数の場合はループさせて取り出す

single.phpでタームの出力方法

記事に設定されたカテゴリー1つだけ取得する場合

<?php 
$taxonomy_slug = "タクソノミー名";
$taxonomy = get_the_terms($post->ID,$taxonomy_slug);
echo $taxonomy[0]->name;//ターム名
echo $taxonomy[0]->slug;//タームスラッグ
echo $taxonomy[0]->term_id;//タームID
echo get_term_link( $taxonomy[0]->slug, $taxonomy_slug );//タームリンク
?>

記事に設定された複数のターム情報を取得する場合

<?php 
$taxonomy_slug = "タクソノミー名";
$taxonomy = get_the_terms($post->ID,$taxonomy_slug);
foreach ($taxonomy as $term) {
echo $term->name;//ターム名
echo $term->slug;//タームスラッグ
echo $term->term_id;//タームID
echo get_term_link( $term->slug, $taxonomy_slug );//タームリンク
}; ?>

おまけ:1つ設定された記事か複数設定された記事かどうかの条件分岐

カテゴリーやタームが1つだけ設定されているか複数設定されているかどうか判断するための条件分岐

<?php if (count($categoryか$taxonomy) < 2) : //1つの時の記述 ?>
…
<?php else: //複数の時の記述 ?>
…
<?php endif; ?>

記事詳細ページにカテゴリーやタームを表示する場合があるんだけどお客さんによってはカテゴリーやタームを複数設定することがあるから汎用性を持たせた方がいいと思い調べるきっかけになった

Leave a Comment

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。