WordPress 現在のカテゴリーIDやカテゴリー名、スラッグ、説明文、親カテゴリー等を取得表示する方法

この記事は4年前に書かれました。不適当な記述を含む場合がありますので、参考程度に留めてください。

どうもこんばんは。今回のtipsは【Wordpress 現在のカテゴリーIDやカテゴリー名、スラッグ、説明文等を取得表示する方法】です。この方法は現在表示中のページと同カテゴリーの記事一覧を表示する際やカテゴリーの名称を表示する際等に使用します。Wordpressをカスタマイズする際には意外と使いますのでメモしておこうかと思いました。

カテゴリーIDやカテゴリー名、スラッグ等の取得表示

下の例では、カテゴリー名、カテゴリーID、スラッグ名、ターム名、タームID、該当カテゴリーでの投稿数、カテゴリーの説明文、親カテゴリー名を取得表示しています。詳細はWordPress.org Codexをご参照ください。


<?php
$cat = get_the_category();
$cat = $cat[0];

$cat_name = $cat->name;
$cat_id = $cat->cat_ID;
$cat_slug = $cat->slug;
$cat_term = $cat->term_id;
$cat_termid = $cat->term_taxonomy_id;
$cat_taxonomy = $cat->taxonomy;
$cat_count = $cat->count;
$cat_description = $cat->category_description;
$parent_id = $cat->category_parent;
$parent = get_category($cat->category_parent);
$parent_catname = $parent->cat_name;

echo $cat_name;
echo $cat_slug;
echo $cat_id;
echo $cat_term;
echo $cat_termid;
echo $cat_taxonomy;
echo $cat_count;
echo $cat_description;
echo $parent_id;
echo $parent_catname;
?>

プロパティ 内容 指定
name カテゴリー名 $cat_name = $cat->name;
cat_ID カテゴリーID $cat_id = $cat->cat_ID;
slug カテゴリースラッグ $cat_slug = $cat->slug;
term_id タームID $cat_term = $cat->term_id;
term_taxonomy_id タクソノミーID $cat_termid = $cat->term_taxonomy_id;
taxonomy タクソノミー名 $cat_taxonomy = $cat->taxonomy;
count 投稿数 $cat_count = $cat->count;
category_description カテゴリー説明文 $cat_description = $cat->category_description;
parent_id 親カテゴリーID $parent_id = $cat->category_parent;
parent_catname 親カテゴリー名 $parent_catname = $parent->cat_name;

特定カテゴリーの記事一覧の表示方法

特定カテゴリーの記事一覧の表示及び、さきほど取得しましたカテゴリーIDを使って同一カテゴリーの記事一覧を表示させる方法です。

カテゴリーID「5」の記事一覧表示

<?php $posts = get_posts(‘numberposts=30&category=5’); ?>
<?php if($posts): foreach($posts as $post): setup_postdata($post); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endforeach; endif; ?>
表示中記事と同カテゴリーの記事一覧表示

<?php $posts = get_posts(‘numberposts=30&category=$cat_id’); ?>
<?php if($posts): foreach($posts as $post): setup_postdata($post); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endforeach; endif; ?>

以上になります。