概要
get_the_category
関数は、投稿データのカテゴリー情報を取得するために使用されます。この関数は、特定の投稿に関連するカテゴリーを取得し、表示や操作に役立てることができます。特に、以下のようなシーンでよく利用されます:
- 投稿の詳細ページでカテゴリーを表示する
- セマンティックなナビゲーションを提供する
- タグや関連投稿の表示時にカテゴリー情報を活用する
- カテゴリーごとのアーカイブページに遷移するリンクを生成する
- デザイン上のスタイルを切り替える条件を提供する
- カテゴリーごとのフィルタリング機能を実装する
- 投稿リストやサイドバーウィジェットにカテゴリーデータを表示する
- カテゴリーを用いたカスタムクエリの構築
構文
get_the_category( $post_id );
パラメータ
$post_id
(int) (オプション):取得したい投稿のID。省略した場合は、グローバル$post
オブジェクトからIDが取得されます。
戻り値
- 配列:指定された投稿のカテゴリー情報を含む配列。各カテゴリーはオブジェクト形式で返され、その中にはID、名前、スラッグ、説明などが含まれます。
関連する関数
使用可能なバージョン
- WordPress 2.0.0 以降
コアファイルのパス
wp-includes/category.php
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード1: 投稿のカテゴリーを表示
$categories = get_the_category();
if ( ! empty( $categories ) ) {
foreach ( $categories as $category ) {
echo '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '">' . esc_html( $category->name ) . '</a> ';
}
}
このサンプルコードは、現在の投稿に関連するすべてのカテゴリーを取得し、それぞれのカテゴリー名をリンク形式で表示します。
サンプルコード2: カテゴリー名のカスタムリストを作成
$categories = get_the_category();
$category_names = wp_list_pluck( $categories, 'name' );
echo '<ul>';
foreach ( $category_names as $name ) {
echo '<li>' . esc_html( $name ) . '</li>';
}
echo '</ul>';
このコードでは、投稿のカテゴリー名だけをリスト形式で表示します。
サンプルコード3: カテゴリー情報をカスタムフィルタで使用
add_filter('the_content', function( $content ) {
if ( is_single() ) {
$categories = get_the_category();
if ( ! empty( $categories ) ) {
$content .= '<div class="post-categories">Categories: ';
foreach ( $categories as $category ) {
$content .= esc_html($category->name) . ', ';
}
$content = rtrim($content, ', ') . '</div>';
}
}
return $content;
});
このサンプルは、投稿の内容が表示される際に、カテゴリ情報を付加しています。
サンプルコード4: カテゴリーに基づいた投稿をクエリする
$categories = get_the_category();
$category_ids = wp_list_pluck( $categories, 'term_id' );
$args = array(
'category__in' => $category_ids,
'posts_per_page' => 5,
);
$related_posts = new WP_Query( $args );
if ( $related_posts->have_posts() ) {
while ( $related_posts->have_posts() ) {
$related_posts->the_post();
echo '<h2>' . get_the_title() . '</h2>';
}
wp_reset_postdata();
}
このコードは、現在の投稿のカテゴリーに一致する別の投稿を最大5件まで取得して表示します。
サンプルコード5: 特定のカテゴリーの投稿数を取得する
$category_id = 1; // 任意のカテゴリーID
$category = get_category( $category_id );
echo '投稿数: ' . $category->count;
このサンプルは、特定のカテゴリーIDに関連する投稿数を取得し、表示します。