サイトアイコン Amelt.net

wordpress:親・子カテゴリスラッグとリンクを取得する方法

Amelt

Amelt

This post is also available in: English-US (英語)

本記事はwordpressにて、親と子のカテゴリー名とカテゴリースラッグ、リンクを取得する方法とサンプルコードについて書いています。
以下のサンプルコードでは、query_posts関数を使って記事一覧を取得し、その記事一覧のカテゴリー名そしてカテゴリースラッグ(子カテゴリーに属している場合には子カテゴリースラッグを取得、子カテゴリが存在せず、親カテゴリーのみに属している場合には親カテゴリースラッグを取得)とそのカテゴリーへのリンクを取得し表示するように書いています。

ちなみに、CSSのclassはカテゴリー名が記述されるようになっています。

<?php query_posts("post_type=post&posts_per_page=10"); ?>
<?php if(have_posts()): ?>
<ul>
<?php while(have_posts()):  the_post(); ?>
<?php
$cats = get_the_category();
$current_cat = '';
foreach ( $cats as $cat ) {
  if ( ! $current_cat || cat_is_ancestor_of( $current_cat, $cat ) ) { //親カテゴリかどうかの判断
    $current_cat = $cat;
  }
}

$catname = $current_cat->cat_name; //カテゴリ名の取得
$catslug = $current_cat->slug; //カテゴリースラッグの取得
$catid = $current_cat->cat_ID; //カテゴリーIDの取得
?>
<li>
<span class="<?php echo $catslug; ?>"><a href="<?php echo get_category_link($catid) ?>"><?php echo $catname; ?></a></span><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endwhile; ?>
</ul>
<?php else: ?>
<p>現在投稿記事はありません。</p>
<?php endif; ?>

参考サイト:
https://ja.forums.wordpress.org/topic/7826