WordPressで記事のカテゴリー情報を取得する場面は数多くあります。「パンくずリストの表示」「カテゴリーに応じたデザイン変更」「関連記事の表示」「カテゴリー別のアーカイブ」など、テーマ開発において必須の知識です。
この記事では、get_the_category() を中心に、WordPress でカテゴリーを取得・表示するための関数群を体系的に解説します。基本的な使い方から、カスタムタクソノミー対応、WP_Query でのカテゴリー条件指定まで、実務で必要なパターンを網羅します。
この記事で学べること
- get_the_category() でカテゴリーオブジェクトを取得する基本
- the_category() でHTMLリンクを直接出力する方法
- get_categories() で全カテゴリー一覧を取得する方法
- カテゴリーオブジェクトのプロパティ一覧と活用法
- 親子カテゴリーの階層を辿る方法
- カスタムタクソノミー対応(get_the_terms / wp_get_post_terms)
- WP_Query でカテゴリー条件を指定して記事を取得する方法
- カテゴリーに応じた条件分岐・スタイル変更の実践テクニック
基本:get_the_category() でカテゴリーを取得する
最も基本的なカテゴリー取得関数です。現在の投稿(または指定IDの投稿)に紐づくカテゴリーオブジェクトの配列を返します。
基本的な使い方
<?php
// 現在の記事のカテゴリーを取得
$categories = get_the_category();
if ( $categories ) {
foreach ( $categories as $category ) {
echo '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '">' . esc_html( $category->name ) . '</a>';
}
}
?>
投稿IDを指定して取得
<?php
// 投稿ID: 123 のカテゴリーを取得
$categories = get_the_category( 123 );
// 最初のカテゴリー名だけ取得する
if ( ! empty( $categories ) ) {
$first_cat = $categories[0];
echo esc_html( $first_cat->name ); // 例: "WordPress"
}
?>
カテゴリーオブジェクトのプロパティ一覧
get_the_category() が返すオブジェクトには、以下のプロパティが含まれます。
| プロパティ |
型 |
説明 |
例 |
term_id |
int |
カテゴリーのID |
5 |
name |
string |
カテゴリー名(表示名) |
WordPress |
slug |
string |
スラッグ(URL用の識別子) |
wordpress |
term_group |
int |
ターム グループ |
0 |
term_taxonomy_id |
int |
タクソノミーID |
5 |
taxonomy |
string |
タクソノミー名 |
category |
description |
string |
カテゴリーの説明文 |
WordPress関連の記事 |
parent |
int |
親カテゴリーのID(0=なし) |
0 |
count |
int |
そのカテゴリーの記事数 |
42 |
cat_ID |
int |
term_idのエイリアス(後方互換) |
5 |
プロパティの活用例
<?php
$categories = get_the_category();
if ( $categories ) {
$cat = $categories[0];
echo $cat->name; // カテゴリー名: "WordPress"
echo $cat->slug; // スラッグ: "wordpress"
echo $cat->term_id; // ID: 5
echo $cat->count; // 記事数: 42
echo $cat->parent; // 親ID: 0(親なし)
echo $cat->description; // 説明文
}
?>
関連記事:カテゴリーの数を簡単に取得する方法
get_category() と get_the_category() の違い
名前が紛らわしい2つの関数ですが、役割が異なります。
| 関数 |
引数 |
戻り値 |
用途 |
get_category( $id ) |
カテゴリーID |
1つのオブジェクト |
IDから特定のカテゴリー情報を取得 |
get_the_category( $post_id ) |
投稿ID(省略可) |
オブジェクトの配列 |
投稿に紐づく全カテゴリーを取得 |
get_category_by_slug( $slug ) |
スラッグ文字列 |
1つのオブジェクト |
スラッグからカテゴリー情報を取得 |
get_category() の使い方
<?php
// カテゴリーID: 5 の情報を取得
$cat = get_category( 5 );
echo $cat->name; // "WordPress"
echo $cat->count; // 42
// スラッグからカテゴリーを取得
$cat = get_category_by_slug( 'wordpress' );
echo $cat->term_id; // 5
// IDからカテゴリー名だけ取得(文字列で返る)
$name = get_the_category_by_ID( 5 );
echo $name; // "WordPress"
?>
the_category() でカテゴリーリンクを直接出力する
get_the_category() がオブジェクトを返すのに対し、the_category() はHTMLリンクを直接出力します。テンプレートで手軽にカテゴリーリンクを表示したい場合に便利です。
the_category() の使い方
<?php
// デフォルト(各カテゴリーを <li> タグで出力)
the_category();
// 出力: <ul><li><a href="...">WordPress</a></li></ul>
// 区切り文字を指定(カンマ区切り)
the_category( ', ' );
// 出力: <a href="...">WordPress</a>, <a href="...">PHP</a>
// パイプ区切り
the_category( ' | ' );
// 出力: <a href="...">WordPress</a> | <a href="...">PHP</a>
?>
| 関数 |
戻り値 |
特徴 |
用途 |
get_the_category() |
配列(オブジェクト) |
データを取得して自由に加工 |
カスタム表示・条件分岐 |
the_category() |
なし(直接出力) |
HTMLリンクを即座に出力 |
テンプレートでの簡易表示 |
get_the_category_list() |
文字列 |
HTMLリンク文字列を返す |
変数に代入して後から出力 |
関連記事:特定のカテゴリー名をリンク付きで表示する方法 / カテゴリーやタグの一覧を指定した区切り文字で表示する方法
get_categories() で全カテゴリー一覧を取得する
投稿に紐づくカテゴリーではなく、サイト全体のカテゴリー一覧を取得するには get_categories() を使います。
全カテゴリーを一覧取得
<?php
$args = array(
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => true, // 記事のないカテゴリーを除外
);
$categories = get_categories( $args );
foreach ( $categories as $category ) {
$link = get_category_link( $category->term_id );
printf(
'<a href="%s">%s(%d件)</a>',
esc_url( $link ),
esc_html( $category->name ),
$category->count
);
}
?>
get_categories() の主なパラメータ
$args = array(
'taxonomy' => 'category', // タクソノミー(デフォルト: category)
'orderby' => 'name', // 並び順: name / count / id / slug
'order' => 'ASC', // ASC / DESC
'hide_empty' => true, // 空カテゴリーを除外するか
'exclude' => '1', // 除外するカテゴリーID(未分類を除外)
'include' => '', // 含めるカテゴリーIDのみ
'parent' => 0, // 親カテゴリーID(0=トップレベルのみ)
'child_of' => 0, // 指定IDの子孫をすべて取得
'number' => '', // 取得件数(空=無制限)
);
関連記事:カテゴリ一覧に記事数を表示する方法 / 最上位(第一階層)のカテゴリーのみを取得する方法
wp_list_categories() でHTMLリストを自動生成する
サイドバーやナビゲーションでカテゴリー一覧をHTMLリスト形式で出力するなら、wp_list_categories() が最も手軽です。
サイドバーにカテゴリーリストを表示
<?php
// 基本(<li> タグのリストを出力)
wp_list_categories( array(
'title_li' => '', // デフォルトの「カテゴリー」タイトルを非表示
'show_count' => true, // 記事数を表示
'hierarchical' => true, // 階層構造で表示
'hide_empty' => true, // 空カテゴリーを非表示
'exclude' => '1', // 未分類を除外
'depth' => 2, // 2階層目まで表示(0=全階層)
) );
?>
<!-- 出力例 -->
<li class="cat-item cat-item-5">
<a href="...category/wordpress/">WordPress (42)</a>
<ul class="children">
<li><a href="...">テーマ (15)</a></li>
</ul>
</li>
? 使い分け:get_categories() はデータを配列で取得して自由に加工したい場合に、wp_list_categories() はHTMLをそのまま出力して済ませたい場合に使います。
wp_get_post_categories() でカテゴリーIDの配列を取得する
カテゴリーオブジェクトではなく、ID の配列だけが欲しい場合は wp_get_post_categories() が便利です。
IDの配列で取得
<?php
// デフォルト: IDの配列を返す
$cat_ids = wp_get_post_categories( get_the_ID() );
// 結果: array( 5, 12, 23 )
// オブジェクトとして取得することも可能
$cats = wp_get_post_categories( get_the_ID(), array( 'fields' => 'all' ) );
// 結果: array( WP_Term オブジェクト, ... )
// 名前だけ取得
$cat_names = wp_get_post_categories( get_the_ID(), array( 'fields' => 'names' ) );
// 結果: array( "WordPress", "PHP", "開発" )
?>
| 関数 |
デフォルトの戻り値 |
ID指定 |
fields指定 |
get_the_category() |
オブジェクト配列 |
✅ 第1引数 |
❌ |
wp_get_post_categories() |
ID配列 |
✅ 第1引数(必須) |
✅ all / names / ids |
get_the_terms() |
WP_Term配列 |
✅ 第1引数(必須) |
❌(常にオブジェクト) |
親子カテゴリーの階層を辿る
WordPressのカテゴリーは階層構造を持てます。親カテゴリーを辿ったり、最上位カテゴリーを取得する方法を紹介します。
親カテゴリーを辿る
<?php
// 現在のカテゴリーの祖先一覧を取得(最上位が先頭)
$categories = get_the_category();
if ( $categories ) {
$cat = $categories[0];
// get_ancestors(): 子→親→祖父の順でIDを返す
$ancestors = get_ancestors( $cat->term_id, 'category' );
// 例: array( 12, 3 ) ← 親ID=12, 祖父ID=3
// 最上位カテゴリーを取得
if ( ! empty( $ancestors ) ) {
$root_id = end( $ancestors ); // 最上位のID
$root_cat = get_category( $root_id );
echo $root_cat->name; // "Web開発"
} else {
// 親がない = 自身が最上位
echo $cat->name;
}
}
?>
get_category_parents() でパンくず風の表示
<?php
$categories = get_the_category();
if ( $categories ) {
// リンク付きで親カテゴリーを辿って表示
$parents = get_category_parents(
$categories[0]->term_id,
true, // リンクを付けるか
' > ' // 区切り文字
);
// 出力: <a href="...">Web開発</a> > <a href="...">WordPress</a> >
if ( ! is_wp_error( $parents ) ) {
echo rtrim( $parents, ' > ' );
}
}
?>
関連記事:最上位(第一階層)のカテゴリーのみを取得する方法
カスタムタクソノミー対応:get_the_terms() / wp_get_post_terms()
標準の「カテゴリー」だけでなく、カスタムタクソノミー(カスタム分類)のタームを取得するには get_the_terms() または wp_get_post_terms() を使います。
get_the_terms() でカスタムタクソノミーを取得
<?php
// カスタムタクソノミー "genre" のタームを取得
$terms = get_the_terms( get_the_ID(), 'genre' );
if ( $terms && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
$link = get_term_link( $term );
printf(
'<a href="%s">%s</a> ',
esc_url( $link ),
esc_html( $term->name )
);
}
}
?>
wp_get_post_terms() でより柔軟に取得
<?php
// より細かい条件を指定できる
$terms = wp_get_post_terms( get_the_ID(), 'genre', array(
'fields' => 'names', // ids / names / all / slugs
'orderby' => 'name',
'order' => 'ASC',
) );
// 結果: array( "SF", "ファンタジー", "ミステリー" )
// 標準カテゴリーにも使える
$cat_slugs = wp_get_post_terms( get_the_ID(), 'category', array(
'fields' => 'slugs',
) );
?>
? ポイント:get_the_terms() と wp_get_post_terms() はどちらもカスタムタクソノミーに対応していますが、wp_get_post_terms() の方が fields パラメータで取得形式を柔軟に指定できます。標準カテゴリー(taxonomy: category)にも使えるので、汎用的に使いたい場合はこちらがおすすめです。
関連記事:複数カテゴリに属する記事をタクソノミー一覧ページで表示する方法 / タクソノミーの存在をチェックする方法
カテゴリーアーカイブページ用の関数
カテゴリーアーカイブページ(/category/wordpress/ のようなページ)で使う専用関数を紹介します。
カテゴリーアーカイブ用関数
<?php
// single_cat_title(): カテゴリーページのタイトルを取得・表示
if ( is_category() ) {
// 直接出力
single_cat_title( 'カテゴリー: ' );
// 出力: "カテゴリー: WordPress"
// 変数に取得(第2引数を false に)
$title = single_cat_title( '', false );
echo '<h1>' . esc_html( $title ) . ' の記事一覧</h1>';
}
// category_description(): カテゴリーの説明文を取得
if ( is_category() ) {
$desc = category_description();
if ( $desc ) {
echo '<div class="cat-description">' . $desc . '</div>';
}
// 特定カテゴリーIDの説明を取得(アーカイブ以外でも使える)
$desc = category_description( 5 );
}
?>
| 関数 |
用途 |
使用場所 |
single_cat_title() |
カテゴリー名の取得・表示 |
category.php / archive.php |
category_description() |
カテゴリーの説明文を取得 |
category.php / archive.php |
get_queried_object() |
現在のカテゴリーオブジェクト全体 |
テンプレートのどこでも |
カテゴリーに応じた条件分岐
現在の投稿が特定のカテゴリーに属しているかを判定し、表示を切り替える方法です。
in_category() で判定
<?php
// カテゴリーID、名前、スラッグのいずれでも指定可能
if ( in_category( 'wordpress' ) ) {
echo 'WordPressの記事です';
}
// 複数カテゴリーのいずれかに属しているか
if ( in_category( array( 'wordpress', 'php', 'javascript' ) ) ) {
echo 'プログラミング系の記事です';
}
// 投稿IDを指定して判定
if ( in_category( 5, 123 ) ) {
// 投稿ID: 123 がカテゴリーID: 5 に属しているか
}
?>
has_category() と is_category() の違い
<?php
// has_category(): 投稿が特定のカテゴリーを「持っている」か
// → in_category() と同等(投稿ページで使用)
if ( has_category( 'wordpress' ) ) {
// この投稿は "wordpress" カテゴリーを持っている
}
// is_category(): 現在のページがカテゴリーアーカイブか
// → カテゴリーページ(archive)の判定に使用
if ( is_category( 'wordpress' ) ) {
// 現在表示中のページが "wordpress" カテゴリーアーカイブ
}
// has_term(): カスタムタクソノミーにも使える汎用版
if ( has_term( 'sf', 'genre' ) ) {
// この投稿は "genre" タクソノミーの "sf" タームを持っている
}
?>
| 関数 |
判定対象 |
使用場面 |
in_category() |
投稿がカテゴリーに属するか |
個別投稿ページ・ループ内 |
has_category() |
in_category() と同等 |
個別投稿ページ・ループ内 |
is_category() |
現在のページがカテゴリーアーカイブか |
テンプレート全体 |
has_term() |
投稿が指定タクソノミーのタームを持つか |
カスタムタクソノミーにも対応 |
関連記事:個別投稿ページで特定カテゴリーのみ要素を表示・非表示にする方法 / 特定のカテゴリーを指定して条件分岐を実装する方法
WP_Query でカテゴリー条件を指定して記事を取得する
特定のカテゴリーに属する記事を一覧で取得するには、WP_Query のカテゴリーパラメータを使います。
カテゴリー指定の方法(4パターン)
<?php
// パターン1: カテゴリーIDで指定(子カテゴリー含む)
$query = new WP_Query( array(
'cat' => 5,
) );
// パターン2: スラッグで指定
$query = new WP_Query( array(
'category_name' => 'wordpress',
) );
// パターン3: 複数カテゴリー(OR条件)
$query = new WP_Query( array(
'category__in' => array( 5, 12, 23 ), // いずれかに属する
) );
// パターン4: 複数カテゴリー(AND条件)
$query = new WP_Query( array(
'category__and' => array( 5, 12 ), // 両方に属する
) );
?>
特定カテゴリーを除外 / カスタムタクソノミーで条件指定
<?php
// 特定カテゴリーを除外
$query = new WP_Query( array(
'category__not_in' => array( 1 ), // 未分類を除外
) );
// tax_query: カスタムタクソノミーで条件指定
$query = new WP_Query( array(
'tax_query' => array(
array(
'taxonomy' => 'genre',
'field' => 'slug', // term_id / slug / name
'terms' => array( 'sf', 'fantasy' ),
'operator' => 'IN', // IN / NOT IN / AND / EXISTS
),
),
) );
?>
| パラメータ |
型 |
説明 |
cat |
int |
カテゴリーID(子カテゴリーの記事も含む) |
category_name |
string |
カテゴリースラッグ(カンマ区切りでOR) |
category__in |
array |
指定IDのいずれかに属する記事(OR) |
category__not_in |
array |
指定IDを除外 |
category__and |
array |
指定IDのすべてに属する記事(AND) |
tax_query |
array |
カスタムタクソノミー対応の高度な条件指定 |
関連記事:特定のカテゴリーの投稿を表示する方法 / 記事一覧から特定のカテゴリーを除外する方法 / WP_Queryで複雑な条件検索を実装する方法
pre_get_posts でメインクエリのカテゴリーを制御する
WP_Queryで新しいクエリを作るのではなく、WordPressのメインクエリ自体を変更したい場合は、pre_get_posts フックを使います。functions.php に記述します。
functions.php:トップページから特定カテゴリーを除外
<?php
function exclude_category_from_home( $query ) {
// 管理画面・サブクエリは対象外
if ( is_admin() || ! $query->is_main_query() ) {
return;
}
// トップページから「お知らせ」カテゴリー(ID: 10)を除外
if ( $query->is_home() ) {
$query->set( 'category__not_in', array( 10 ) );
}
// 検索結果を特定カテゴリーに限定
if ( $query->is_search() ) {
$query->set( 'cat', '5,12,23' );
}
}
add_action( 'pre_get_posts', 'exclude_category_from_home' );
?>
⚠ 注意:is_admin() と is_main_query() のチェックを必ず入れてください。これを忘れると管理画面やウィジェットなど、すべてのクエリに影響します。
関連記事:特定のカテゴリを除外した記事一覧を表示する方法 / 特定のカテゴリーだけ検索対象から除外する方法
カテゴリーに応じたスタイル変更
カテゴリーのスラッグをCSSクラスに利用すると、カテゴリーごとにデザインを切り替えることができます。
カテゴリースラッグでCSSクラスを付与
<?php
// 方法1: body_class() を利用(自動的にカテゴリークラスが付く)
// <body class="single category-wordpress category-5">
// 方法2: 手動でカテゴリースラッグをクラスに追加
$categories = get_the_category();
$cat_classes = '';
if ( $categories ) {
$slugs = array_map( function( $cat ) {
return 'cat-' . esc_attr( $cat->slug );
}, $categories );
$cat_classes = implode( ' ', $slugs );
}
?>
<!-- テンプレートでの使用 -->
<article class="post-card <?php echo $cat_classes; ?>">
...
</article>
style.css でカテゴリー別スタイル
/* カテゴリーごとのアクセントカラー */
.cat-wordpress .post-title { color: #21759b; }
.cat-javascript .post-title { color: #f7df1e; }
.cat-php .post-title { color: #777bb4; }
/* カテゴリーラベルのバッジスタイル */
.category-badge {
display: inline-block;
padding: 2px 10px;
border-radius: 12px;
font-size: 12px;
font-weight: 600;
color: #fff;
}
関連記事:カテゴリーごとに異なるデフォルトのサムネイル画像を表示する方法
実践パターン集
パターン1:カテゴリーラベルをバッジ風に表示
カテゴリーバッジの実装
<?php
/**
* カテゴリーをバッジ風に表示するヘルパー関数
*/
function display_category_badges( $post_id = null ) {
$categories = get_the_category( $post_id );
if ( empty( $categories ) ) return;
echo '<div class="category-badges">';
foreach ( $categories as $cat ) {
printf(
'<a href="%s" class="category-badge cat-%s">%s</a>',
esc_url( get_category_link( $cat->term_id ) ),
esc_attr( $cat->slug ),
esc_html( $cat->name )
);
}
echo '</div>';
}
?>
パターン2:同じカテゴリーの関連記事を表示
同カテゴリーの関連記事
<?php
$categories = get_the_category();
if ( $categories ) {
$related = new WP_Query( array(
'category__in' => array( $categories[0]->term_id ),
'post__not_in' => array( get_the_ID() ), // 現在の記事を除外
'posts_per_page' => 5,
'orderby' => 'rand',
) );
if ( $related->have_posts() ) {
echo '<h3>関連記事</h3><ul>';
while ( $related->have_posts() ) {
$related->the_post();
printf(
'<li><a href="%s">%s</a></li>',
get_permalink(),
get_the_title()
);
}
echo '</ul>';
wp_reset_postdata();
}
}
?>
パターン3:カテゴリーごとのアイコン付きパンくずリスト
簡易パンくずリスト
<?php
function simple_breadcrumb() {
if ( ! is_single() ) return;
$categories = get_the_category();
if ( empty( $categories ) ) return;
$cat = $categories[0];
$ancestors = array_reverse( get_ancestors( $cat->term_id, 'category' ) );
echo '<nav class="breadcrumb">';
echo '<a href="' . home_url() . '">ホーム</a> > ';
// 祖先カテゴリーを表示
foreach ( $ancestors as $ancestor_id ) {
$ancestor = get_category( $ancestor_id );
printf(
'<a href="%s">%s</a> > ',
esc_url( get_category_link( $ancestor_id ) ),
esc_html( $ancestor->name )
);
}
// 現在のカテゴリー
printf(
'<a href="%s">%s</a> > ',
esc_url( get_category_link( $cat->term_id ) ),
esc_html( $cat->name )
);
// 記事タイトル
echo '<span>' . get_the_title() . '</span>';
echo '</nav>';
}
?>
パフォーマンスの注意点
| 注意点 |
説明 |
対策 |
| get_the_category() のキャッシュ |
内部でオブジェクトキャッシュを使用 |
同一リクエスト内で何度呼んでも重複クエリは発生しない |
| ループ内のWP_Query |
ループの中でnew WP_Queryすると重い |
ループ外で一度取得し、結果をキャッシュする |
| orderby=rand |
大量記事でORDER BY RAND()は遅い |
Transient APIでキャッシュするか、IDを先に取得してシャッフル |
| wp_reset_postdata() の忘れ |
カスタムクエリ後にグローバル$postがずれる |
WP_Query使用後は必ず wp_reset_postdata() を呼ぶ |
トラブルシューティング
| 症状 |
原因 |
対処法 |
| get_the_category() が空の配列を返す |
ループ外で呼んでいる / カテゴリー未設定 |
投稿IDを引数に渡すか、ループ内で使用する |
| 「未分類」が表示される |
投稿のカテゴリーが「未分類」のみ |
除外するか、未分類カテゴリーの名前を変更する |
| カスタムタクソノミーが取得できない |
get_the_category() はcategoryのみ対応 |
get_the_terms() か wp_get_post_terms() を使う |
| カテゴリーリンクが404になる |
パーマリンクの更新が必要 |
管理画面 → 設定 → パーマリンクで「変更を保存」 |
| get_the_terms() がWP_Errorを返す |
存在しないタクソノミーを指定 |
is_wp_error() でチェックしてから使用する |
| 子カテゴリーの記事が取得できない |
category__in は直接属するもののみ |
cat パラメータを使うか、子カテゴリーIDも含める |
どの関数を使うべきか?選び方ガイド
カテゴリー取得関数が多くて迷う場合は、以下のフローで判断できます。
Q1. 投稿に紐づくカテゴリー? それとも全カテゴリー一覧?
→ 全カテゴリー一覧:Q2 へ
→ 投稿に紐づくカテゴリー:Q3 へ
Q2. HTMLをそのまま出力したい?データを加工したい?
→ HTMLリストで出力:wp_list_categories()
→ データを配列で取得:get_categories()
Q3. カスタムタクソノミーにも対応が必要?
→ はい:get_the_terms() / wp_get_post_terms()
→ 標準カテゴリーのみ:Q4 へ
Q4. HTMLリンクを直接出力?データとして取得?
→ HTML直接出力:the_category()
→ データとして取得:Q5 へ
Q5. ID だけで十分?オブジェクト全体が必要?
→ IDだけ:wp_get_post_categories()
→ オブジェクト全体:get_the_category()
まとめ
| やりたいこと |
使う関数 |
| 投稿のカテゴリーを取得(オブジェクト) |
get_the_category() |
| カテゴリーリンクを直接出力 |
the_category() |
| 全カテゴリー一覧を取得 |
get_categories() |
| カテゴリーIDの配列で取得 |
wp_get_post_categories() |
| カスタムタクソノミーのターム取得 |
get_the_terms() / wp_get_post_terms() |
| 投稿がカテゴリーに属するか判定 |
in_category() / has_category() |
| カテゴリーで記事を検索 |
WP_Query + cat / category__in |
| 親カテゴリーを辿る |
get_ancestors() / get_category_parents() |
基本は get_the_category() でカテゴリーオブジェクトを取得し、name・slug・term_id などのプロパティを活用する形です。カスタムタクソノミーを扱う場合は get_the_terms()、カテゴリーで記事を絞り込む場合は WP_Query のカテゴリーパラメータを使います。
関連記事:特定のカテゴリー名をリンク付きで表示する方法 / 特定のカテゴリーの投稿を表示する方法 / 記事一覧から特定のカテゴリーを除外する方法 / WP_Queryで複雑な条件検索を実装する方法