カテゴリー・タグ・タームのアーカイブページへのリンクを取得する方法をメモ。
カテゴリーの場合
カテゴリーの一覧を取得して、ループ内でアーカイブページへのリンクを取得してみます。
PHP
<ul> <?php $arr = array( 'hide_empty' => 0, // 投稿のないカテゴリーも含める ); $categories = get_categories( $arr ); ?> <?php foreach($categories as $category) : ?> <li> <a href="<?php echo get_category_link( $category->term_id ); ?>"> <?php echo $category->name; ?> </a> </li> <?php endforeach; ?> </ul>
アーカイブページへのリンク付きのカテゴリー一覧を出力できました。
HTML
<ul> <li> <a href="http://XXXXX/category/cata/"> カテゴリーA </a> </li> <li> <a href="http://XXXXX/category/catb/"> カテゴリーB </a> </li> <li> <a href="http://XXXXX/category/catc/"> カテゴリーC </a> </li> </ul>
投稿に属しているカテゴリーを取得して、ループ内でアーカイブページへのリンクを取得してみます。
PHP
<?php $categories = get_the_category(); ?> <?php foreach( $categories as $category ): ?> <a href="<?php echo get_category_link( $category->term_id ); ?>"> <?php echo $category->name; ?> </a> <?php endforeach; ?>
投稿に属しているカテゴリーを、アーカイブページへのリンク付きで出力できました。
HTML
<a href="http://XXXXX/category/cata/"> カテゴリーA </a>
get_category_link( $category_id ); | 指定したカテゴリーIDのカテゴリーアーカイブページへのリンクを取得。 |
---|
タグの場合
タグの一覧を取得して、ループ内でアーカイブページへのリンクを取得してみます。
PHP
<ul> <?php $arr = array( 'hide_empty' => 0, // 投稿のないタグも含める ); $tags = get_tags( $arr ); ?> <?php foreach($tags as $tag) : ?> <li> <a href="<?php echo get_tag_link( $tag->term_id ); ?>"> <?php echo $tag->name; ?> </a> </li> <?php endforeach; ?> </ul>
アーカイブページへのリンク付きのタグ一覧を出力できました。
HTML
<ul> <li> <a href="http://XXXXX/tag/taga/"> タグA </a> </li> <li> <a href="http://XXXXX/tag/tagb/"> タグB </a> </li> <li> <a href="http://XXXXX/tag/tagc/"> タグC </a> </li> </ul>
投稿に属しているタグを取得して、ループ内でアーカイブページへのリンクを取得してみます。
PHP
<?php $tags = get_the_tags(); ?> <?php foreach( $tags as $tag ): ?> <a href="<?php echo get_tag_link( $tag->term_id ); ?>"> <?php echo $tag->name; ?> </a> <?php endforeach; ?>
投稿に属しているタグを、アーカイブページへのリンク付きで出力できました。
HTML
<a href="http://XXXXX/tag/taga/"> タグA </a>
get_tag_link( $tag_id ); | 指定したタグIDのタグアーカイブページへのリンクを取得。 |
---|
タームの場合
今回は例として、genreというスラッグのタクソノミーを使う想定で試してみます。。
タームの一覧を取得して、ループ内でアーカイブページへのリンクを取得してみます。
PHP
<ul> <?php $arr = array( 'hide_empty' => 0, // 投稿のないタグも含める ); $terms = get_terms( 'genre', $arr ); ?> <?php foreach($terms as $term) : ?> <li> <a href="<?php echo get_term_link( $term->term_id, 'genre' ); ?>"> <?php echo $term->name; ?> </a> </li> <?php endforeach; ?> </ul>
アーカイブページへのリンク付きのターム一覧を出力できました。
HTML
<ul> <li> <a href="http://XXXXX/genre/genrea/"> ジャンルA </a> </li> <li> <a href="http://XXXXX/genre/genreb/"> ジャンルB </a> </li> <li> <a href="http://XXXXX/genre/genrec/"> ジャンルC </a> </li> </ul>
投稿に属しているタームを取得して、ループ内でアーカイブページへのリンクを取得してみます。
PHP
<?php $terms = get_the_terms( $post->ID, 'genre' ); ?> <?php foreach( $terms as $term ): ?> <a href="<?php echo get_term_link( $term->term_id, 'genre' ); ?>"> <?php echo $term->name; ?> </a> <?php endforeach; ?>
投稿に属しているタームを、アーカイブページへのリンク付きで出力できました。
HTML
<a href="http://XXXXX/genre/genrea/"> ジャンルA </a>
get_term_link( $term, $taxonomy ); | 指定したタームのアーカイブページへのリンクを取得。 $termにはタームのオブジェクト・ID・スラッグのいずれか、$taxonomyにはタクソノミーのスラッグを指定。 |
---|
【参考サイト】
- 関数リファレンス/get category link – WordPress Codex 日本語版
- 関数リファレンス/get tag link – WordPress Codex 日本語版
- 関数リファレンス/get term link – WordPress Codex 日本語版
コメントが承認されるまで時間がかかります。