今、ブログを始めようとしている方、
今なら、ConoHaサーバーの「WINGパックプラン」が最大55%OFF!
「1,452円/月」が「643 円/月」の「低コスト」で始められるチャンスとなっております!
お申し込みはこちらから!

ConoHa WINGは国内最速の高性能レンタルサーバーサービスで
初期費用無料、最低利用期間無しでご利用いただけます!
(この記事は2025年05月25日に投稿されました。)
WordPressでサイトを構築していると「指定したカテゴリー情報を取得して処理したり表示したりしたい」という場面によく遭遇します。
例えば、カテゴリー名、スラッグ、説明文、親カテゴリー情報など、様々なデータにアクセスできれば、より柔軟で動的なサイト設計が可能になります。
WordPressで指定したカテゴリーの情報するにはget_category()を使用します。
get_category()とは指定したカテゴリーの情報を取得するWordPressの関数となります。
カテゴリー情報をオブジェクトで取得し、オブジェクトに対してプロパティを指定することで欲しい情報のみを取得することが可能になります。
そのため、こちらの関数を活用することで、指定したカテゴリーのあらゆる情報を簡単に取得し、思い通りの表示を実現することができます。
今回はWordPressのget_category()で指定したカテゴリーの情報を取得する方法について徹底的に紹介していきます。
この記事を読み終える頃には、あなたも get_category()をマスターし、WordPressによる表現力の可能性をさらに引き出すことができるようになるでしょう。
投稿記事に付与したカテゴリーの情報を取得したい場合
カテゴリー情報を条件分岐として使用したい場合
WordPressのget_category()とは
get_category()とは、指定したカテゴリーの情報を取得するWordPressの関数になります。
WordPress内で登録したカテゴリーをプログラム内で取得し、処理として使用したり、様々なページで出力したりすることができます。
get_category()の書き方
get_category()の書き方は下記のようになります。
1 | get_category('カテゴリーID', ['取得形式']) |
get_category()と記載し、括弧の中に必須な引数を1つ、任意な引数を1つ指定することで使用できます。
get_category()のパラメータ
get_category()のパラメータは下記のようになります。
- カテゴリーID: 必須
取得したいカテゴリー情報のIDを指定する。 - 取得形式: 任意
カテゴリー情報を取得する際の形式を指定する。
(デフォルトはオブジェクト)
get_category()を記載し、括弧の中に必須の引数として、「カテゴリーID」を指定します。
続けて、括弧の中に任意の引数として、「取得形式」を指定します。
get_category()の戻り値
get_category()の戻り値は「オブジェクト」であり、指定したカテゴリーの情報を格納して返すようになります。
get_category()の呼び出し元
get_category()の呼び出し元は「wp-includes/category.php」となります。
1 2 3 4 5 6 7 8 9 10 11 | function get_category( $category, $output = OBJECT, $filter = 'raw' ) { $category = get_term( $category, 'category', $output, $filter ); if ( is_wp_error( $category ) ) { return $category; } _make_cat_compat( $category ); return $category; } |
get_category()は、get_terms()を呼び出しており、エラーでない場合、指定したカテゴリーの情報を返り値に指定しています。
get_category()を使用するメリット
get_category()を使用するメリットについてご紹介します。
ここでは、下記の3点について解説していきます。
- 特定のカテゴリー情報をピンポイントで取得できる<
- サイトのページを動的に表示することができる
- SEO対策に有効である
特定のカテゴリー情報をピンポイントで取得できる
まず、1つ目は特定のカテゴリー情報をピンポイントで取得できるということです。
特定のカテゴリーIDさえ分かれば、そのカテゴリーに関する様々な情報を効率的に取得できます。
取得したいカテゴリー情報のみを取得することができるため、不要なデータ処理を省き、パフォーマンス向上にも期待ができます。
サイトのページを動的に表示することができる
2つ目はサイトのページを動的に表示することができるということです。
取得した情報を使用することでカテゴリーごとに異なる表示をしたり、特定のカテゴリーへのリンクを動的に生成したりできます。
例えば、「カテゴリーA」のページでは説明文をページ上部に表示し、他のページには説明文を表示しないなど、静的な表示では難しい表現が可能になります。
SEO対策に有効である
3つ目はSEO対策に有効であるということです。
カテゴリーの説明文などを動的に表示できるため、ユーザーだけでなく検索エンジンにもそのカテゴリーが何についてのものなのかを明確に伝えられます。
また、特定のカテゴリーアーカイブページへのリンクを適切に配置することもできるため、クローラビリティの向上からSEO対策に繋がります。
get_category()で指定したカテゴリーの情報を取得するサンプルコード
get_category()で指定したカテゴリーの情報を取得するサンプルコードを紹介します。
ここでは、下記の2ケースでget_category()を使用します。
- 存在するカテゴリーIDを指定する場合
- 存在しないカテゴリーIDを指定する場合
存在するカテゴリーIDを指定する場合
存在するカテゴリーIDを指定する場合にget_category()を使用すると、指定したカテゴリーの情報を取得します。
試しに、下記の画像である「テスト」のカテゴリー情報を取得します。
「テスト」のカテゴリーIDは「8」であるため、引数に「8」を指定します。
カテゴリー一覧画面
● index.php
1 2 3 4 5 6 7 | <div class= 'cat-list'> <h1 class="entry-title">get_category()で指定したカテゴリー情報を取得</h1> <?php $category = get_category('8'); ?> <div> <?php print_r($category); ?> </div> </div> |
実行結果
get_category()で存在するカテゴリーIDを指定してカテゴリーの情報を取得しています。
そのため、カテゴリー「テスト」のカテゴリー情報が表示されています。
存在しないカテゴリーIDを指定する場合
存在しないカテゴリーIDを指定する場合にget_category()を使用すると、カテゴリー情報を取得しません。
● index.php
1 2 3 4 5 6 7 | <div class= 'cat-list'> <h1 class="entry-title">get_category()で指定したカテゴリー情報を取得</h1> <?php $category = get_category('999'); ?> <div> <?php print_r($category); ?> </div> </div> |
実行結果
get_category()で存在しないカテゴリーIDを指定してカテゴリーの情報を取得しています。
「999」を指定していますが、「999」のカテゴリーが存在しないため、情報を取得できず、何も表示されていません。
カテゴリーIDを指定しないでget_category()を使用する場合
カテゴリーIDを指定しないでget_category()を使用するとエラーが発生します。
● index.php
1 2 3 4 5 6 7 | <div class= 'cat-list'> <h1 class="entry-title">get_category()で指定したカテゴリー情報を取得</h1> <?php $category = get_category(); ?> <div> <?php print_r($category); ?> </div> </div> |
実行結果
Uncaught ArgumentCountError: Too few arguments to function get_category(), 0 passed in wp-content/themes/twentytwentyone/index.php on line 26 and at least 1 expected in wp-includes/category.php:92
Stack trace:
#0 wp-content/themes/twentytwentyone/index.php(26): get_category()
#1 wp-includes/template-loader.php(106): include(‘/virtual/sossyt…’)
#2 wp-blog-header.php(19): require_once(‘/virtual/sossyt…’)
#3 index.php(17): require(‘/virtual/sossyt…’)
#4 {main}
thrown
get_category()でカテゴリーIDを指定しないで、カテゴリーの情報を取得しています。
カテゴリーIDは必須であるため、「get_category() の引数が少なすぎる」というエラーが表示されています。
get_category()でカテゴリー情報を別々で取得する場合
get_category()でカテゴリー情報を別々で取得する場合は、取得したデータに対して、アロー演算子を使用します。
アロー演算子とは、オブジェクトの中身にアクセスするための演算子であリ、オブジェクトが持つプロパティやメソッドを呼び出すことができます。
そのため、取得したオブジェクトに対してアロー演算子を使用すると、取得したカテゴリー情報を別々で取得することが可能になります。
ここでは下記の6ケースでget_category()を使用し、カテゴリーの情報を別々で取得します。
- カテゴリーの名前を取得する場合
- カテゴリーのIDを取得する場合
- カテゴリーのスラッグ名を取得する場合
- カテゴリーの説明を取得する場合
- カテゴリーの親カテゴリーIDを取得する場合
- カテゴリーの投稿数を取得する場合
ここでは下記のカテゴリー情報を取得することとします。
カテゴリー一覧画面
カテゴリーの名前を取得する場合
カテゴリーの名前を取得する場合は、get_category()で取得したオブジェクトに対して、「name」もしくは「cat_name」というプロパティを指定します。
● index.php
1 2 3 4 5 6 7 8 | <div class= 'cat-list'> <h1 class="entry-title">get_category()で指定したカテゴリー情報を取得</h1> <?php $category = get_category('8'); ?> <div> <p>name: <?php echo ($category->name); ?></p> <p>cat_name: <?php echo ($category->cat_name); ?></p> </div> </div> |
実行結果
get_category()でカテゴリーの名前を取得しています。
そのため、カテゴリーの名前である「テスト」それぞれ表示されています。
カテゴリーのIDを取得する場合
カテゴリーのIDを取得する場合は、get_category()で取得したオブジェクトに対して、「term_id」もしくは「cat_ID」というプロパティを指定します。
● index.php
1 2 3 4 5 6 7 8 | <div class= 'cat-list'> <h1 class="entry-title">get_category()で指定したカテゴリー情報を取得</h1> <?php $category = get_category('8'); ?> <div> <p>term_id: <?php echo ($category->term_id); ?></p> <p>cat_ID: <?php echo ($category->cat_ID); ?></p> </div> </div> |
実行結果
get_category()でカテゴリーのIDを取得しています。
そのため、「テスト」カテゴリーのIDである「8」がそれぞれ表示されています。
カテゴリーのスラッグ名を取得する場合
カテゴリー名を取得する場合は、get_category()で取得したオブジェクトに対して、「slug」もしくは「category_nicename」というプロパティを指定します。
● index.php
1 2 3 4 5 6 7 8 | <div class= 'cat-list'> <h1 class="entry-title">get_category()で指定したカテゴリー情報を取得</h1> <?php $category = get_category('8'); ?> <div> <p>slug: <?php echo ($category->slug); ?></p> <p>category_nicename: <?php echo ($category->category_nicename); ?></p> </div> </div> |
実行結果
get_category()でカテゴリーのスラッグを取得しています。
そのため、「お知らせ」カテゴリーのスラッグである「test」がそれぞれ表示されています。
カテゴリーの説明を取得する場合
カテゴリーの説明を取得する場合は、get_category()で取得したオブジェクトに対して、「description」もしくは「category_description」というプロパティを指定します。
● index.php
1 2 3 4 5 6 7 8 | <div class= 'cat-list'> <h1 class="entry-title">get_category()で指定したカテゴリー情報を取得</h1> <?php $category = get_category('8'); ?> <div> <p>description: <?php echo ($category->description); ?></p> <p>category_description: <?php echo ($category->category_description); ?></p> </div> </div> |
実行結果
get_category()でカテゴリーの説明を取得しています。
そのため、「テスト」カテゴリーの説明文がそれぞれ表示されています。
カテゴリーの投稿数を取得する場合
カテゴリー名を取得する場合は、get_category()で取得したオブジェクトに対して、「count」もしくは「category_count」というプロパティを指定します。
● index.php
1 2 3 4 5 6 7 8 | <div class= 'cat-list'> <h1 class="entry-title">get_category()で指定したカテゴリー情報を取得</h1> <?php $category = get_category('8'); ?> <div> <p>count: <?php echo ($category->count); ?></p> <p>category_count: <?php echo ($category->category_count); ?></p> </div> </div> |
実行結果
get_category()でカテゴリーの投稿数を取得しています。
そのため、「テスト」のカテゴリーの投稿数である「12」が表示されています。
親カテゴリーのIDを取得する場合
親カテゴリーのIDを取得する場合は、get_category()で取得したオブジェクトに対して、「parent」もしくは「category_parent」というプロパティを指定します。
● index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <div class= 'cat-list'> <h1 class="entry-title">get_category()で指定したカテゴリー情報を取得</h1> <?php $category = get_category('8'); ?> <div> <p>parent: <?php echo ($category->parent); ?></p> <p>category_parent: <?php echo ($category->category_parent); ?></p> </div> <?php $category = get_category('2'); ?> <div> <p>parent: <?php echo ($category->parent); ?></p> <p>category_parent: <?php echo ($category->category_parent); ?></p> </div> </div> |
実行結果
get_category()で親カテゴリーIDを取得しています。
「テスト」カテゴリーは親カテゴリーがいないため、「0」が表示されています。
また、「テスト1」カテゴリーは親が存在するため、親カテゴリー「テスト」のIDである「8」が表示されています。
取得形式を指定してget_category()で指定したカテゴリーの情報を取得する場合
取得形式を指定してget_category()で指定したカテゴリーの情報を取得するにはパラメータに「取得形式」を指定します。
取得形式を変更することで、カテゴリー情報を自分の好みの形式を指定して受け取ることが可能になります。
そのため、ここでは下記の3ケースでget_category()を使用します。
- オブジェクトで取得する場合
- 連想配列で取得する場合
- 配列で取得する場合
オブジェクトで取得する場合
指定したカテゴリーの情報をオブジェクトで取得するには「引数なし」にするか、パラメータである取得形式に「OBJECT」を指定します。
● index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <div class= 'cat-list'> <h1 class="entry-title">get_category()で指定したカテゴリー情報を取得</h1> <?php $category1 = get_category('8'); ?> <div> <?php print_r($category1); ?> <p><?php print_r($category2->name); ?></p> </div> <?php $category2 = get_category('8', 'OBJECT'); ?> <div> <?php print_r($category2); ?> <p><?php print_r($category2->name); ?></p> </div> </div> |
実行結果
get_category()でカテゴリー情報をオブジェクトで取得しています。
nameプロパティにカテゴリー名が格納されているため、アロー関数にnameを指定して「テスト」が表示されています。
連想配列形式で取得する場合
指定したカテゴリーの情報を連想配列形式で取得するには、パラメータである取得形式に「ARRAY_A」を指定します。
連想配列のため、キーを指定することで、取得したいカテゴリーの情報を取得することが可能になります。
● index.php
1 2 3 4 5 6 7 8 | <div class= 'cat-list'> <h1 class="entry-title">get_category()で指定したカテゴリー情報を連祖配列で取得</h1> <?php $category = get_category('8', 'ARRAY_A'); ?> <div> <?php print_r($category); ?> <p><?php print_r($category[name]); ?></p> </div> </div> |
実行結果
get_category()でカテゴリー情報を連祖配列で取得しています。
「name」のキーにはカテゴリー名が格納されているため、「name」を指定して「テスト」が表示されています。
配列で取得する場合
get_category()で指定したカテゴリーの情報を配列で取得するには、パラメータである取得形式に「ARRAY_N」を指定します。
配列のため、カテゴリー情報をインデックスで取得することが可能になります。
● index.php
1 2 3 4 5 6 7 8 | <div class= 'cat-list'> <h1 class="entry-title">get_category()で指定したカテゴリー情報を添字形式で取得</h1> <?php $category = get_category('8', 'ARRAY_N'); ?> <div> <?php print_r($category); ?> <p><?php print_r($category[1]); ?></p> </div> </div> |
実行結果
get_category()でカテゴリー情報を配列で取得しています。
配列の2番目にはカテゴリー名が格納されているため、インデックスに「1」を指定して「テスト」が表示されています。
get_category()を使用した実際のケース
get_category()を使用した実際のケースについてご紹介します。
ここでは、下記の2ケースをご紹介します。
- 特定のカテゴリーページのみ特定の内容を表示する<
- カテゴリーごとにコンテンツやレイアウトを変更する
特定のカテゴリーページのみ追加情報を表示する
get_category()を使用することで、特定のカテゴリーページのみ追加情報を表示することができます。
例えば、get_category()で「テスト」のカテゴリーページである場合のみ、ページの概要を表示するようにします。
● category.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php get_header(); ?> <?php if ( have_posts() ) : ?> <header> <h2 class='h2-title'><span><?php echo single_cat_title(); ?></span></h2> <?php $cat_id = get_query_var('cat'); $category = get_category($cat_id, 'ARRAY_A'); if ($category[name] == 'テスト'): ?> <p class=''>このページは弊社がテストを行った実績一覧を紹介しています。</p> <?php endif ;?> </header> <div class= 'flex'> <?php while ( have_posts() ) : ?> <?php the_post(); ?> <?php // 記事の出力処理 ?> <?php endwhile; ?> </div> <?php else : ?> <p>現在、記事はありません。</p> <?php endif; ?> <?php get_footer(); ?> |
● style.css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | .h2-title { text-align:center; } .explanation { width: 80%; margin: 0 auto; text-align: center; font-size: 1.25em; } .flex { display: flex; flex-wrap: wrap; } article { width: 42.5%; margin: 0 auto; } |
実行結果
get_category()でテストのIDと一致した場合に、カテゴリーページの概要を出力するようにしています。
そのため、テストのページ一覧に「弊社で行ったテストの実績一覧が表示されています。」という文章が表示されています。
カテゴリーによってコンテンツやレイアウトを変更する
get_category()で、カテゴリーによってコンテンツやレイアウトを変更することができます。
例えば、get_category()で「テスト」のカテゴリーページと「お知らせ」のカテゴリーページとで、それぞれ異なるレイアウトで表示します。
● category.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | <?php get_header(); ?> <header> <?php $cat_id = get_query_var('cat'); $category = get_category($cat_id, 'ARRAY_A'); ?> </header> <?php $category = get_category($cat_id, 'ARRAY_A'); if(($category[name]) == 'テスト'): ?> <div class='flex box-size'> <div class= 'post-flex'> <?php while ( have_posts() ) : ?> <?php the_post(); ?> <?php // 記事の出力処理 ?> <?php endwhile; ?> </div> <aside class='sidebar'> <h2 class='entry-title mrgn-tp'>カテゴリー一覧</h2> <?php $categories = get_categories(); ?> <div> <ul> <?php foreach($categories as $category): $categoryName = $category->name; ?> <li style="text-align: left;"> <?php echo $categoryName; ?> </li> <?php endforeach; ?> </ul> </div> </aside> </div> <?php else: ?> <div class= 'flex'> <?php while ( have_posts() ): ?> <?php the_post(); ?> <?php // 記事の出力処理 ?> <?php endwhile; ?> </div> <?php endif; ?> <?php get_footer(); ?> |
● style.css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | h2.entry-title { text-align: center; font-size: 1.75em; } .mrgn-tp{ margin-top: 10px; } .flex { display: flex; flex-wrap: wrap; } .box-size { width: 85%; margin: 10% auto; } article { width: 42.5%; margin: 13px auto; border: 2px solid lightgrey; box-shadow: 10px 10px 15px -10px; } .post-flex { width: 75%; display:flex; flex-wrap:wrap; } .sidebar { width:24.5%; border:1px solid lightgray; box-shadow: 10px 10px 15px -10px; } |
実行結果
get_category()でカテゴリーによってコンテンツやレイアウトを変更しています。
そのため、「テスト」のカテゴリーページと「お知らせ」のカテゴリーページを表示すると、それぞれレイアウトが変更されています。
WordPressでカテゴリー情報を取得する他の関数
get_category()でカテゴリーの情報を取得しましたが、他にもカテゴリー情報を取得できる関数は存在します。
そのため、ここではWordPressでカテゴリー情報を取得できる他の関数についてご紹介します。
get_categories()
全てのカテゴリー情報を取得するには、get_categories()を使用します。
get_categories()とは、WordPress上で登録されているカテゴリーの情報を全て取得することができるWordPressの関数になります。
カテゴリー情報を取得するため、こちらもオブジェクトでデータを返すようになります。
● index.php
1 2 3 4 5 6 7 8 9 10 11 12 | <div class= 'cat-list'> <h1 class="entry-title">get_categories()で全てのカテゴリー情報を取得</h1> <?php $categories = get_categories(); ?> <div> <ol> <?php foreach($categories as $category): $categoryName = $category->name; ?> <li style="text-align: left;"><?php echo $categoryName; ?></li> <?php endforeach; ?> </ol> </div> </div> |
実行結果
get_categories()で全てのカテゴリー情報を取得しています。
今回はカテゴリー名だけを取得して表示したため、WordPress内に登録されている全てのカテゴリー名が表示されています。
get_the_category()
get_the_category()とは、投稿記事に付与されているカテゴリーの情報を取得する関数になります。
そのため、各投稿記事のページにて付与されているカテゴリー情報を取得したり、表示したりすることができます。
● index.php
1 2 3 4 5 6 7 8 9 | <div class= 'cat-list'> <h1 class="entry-title">get_the_category()でカテゴリーの情報を取得</h1> <?php $category = get_the_category(141); ?> <?php $cat = $category[0]; ?> <div class= "cat-info"> <p><?php echo($cat->name); ?></p> <p><?php echo($cat->slug); ?></p> </div> </div> |
投稿一覧画面
実行結果
get_the_category()で投稿記事に付与したカテゴリーの情報を取得しています。
投稿記事ID「141」には「お知らせ」のカテゴリーが付与されているため、お知らせのカテゴリー情報が表示されています。
もし、get_the_category()について詳しく知りたい場合は下記の記事をご参考ください。
まとめ
⚫︎ get_category()とは、投稿記事に付与されているカテゴリーの情報をオブジェクトで取得するWordPressの関数である。
⚫︎ get_category()は下記のパラメータを指定して使用する。
・カテゴリーID(必須)
・取得形式(任意)
⚫︎ get_category()を使用することで下記のようなメリットがある。
・特定のカテゴリー情報をピンポイントで取得できる
・サイトのページを動的に表示することができる
・SEO対策に有効である
⚫︎ 存在するカテゴリーIDを指定してget_category()を使用すると、指定したカテゴリー情報を取得する。
⚫︎ 存在しないカテゴリーIDを指定してget_category()を使用すると、カテゴリー情報を取得しない。
⚫︎ カテゴリーIDを指定しないでget_category()を使用すると、エラーとなる。
⚫︎ get_category()でカテゴリー情報を別々で取得する場合は、get_category()で取得したデータに対してアロー演算子を使用し、プロパティを指定して使用する。
・カテゴリーの名前を取得する場合:
→ プロパティは「name」もしくは「cat_name」
・カテゴリーのIDを取得する場合:
→ プロパティは「term_id」もしくは「cat_ID」
・カテゴリーのスラッグ名を取得する場合
→ プロパティは「slug」もしくは「category_nicename」
・カテゴリーの説明を取得する場合
→ プロパティは「description」もしくは「category_description」
・カテゴリーの投稿数を取得する場合
→ プロパティは「copunt」もしくは「category_count」
・親カテゴリーのIDを取得する場合
→ プロパティは「parent」もしくは「category_parent」
⚫︎ get_category()でカテゴリー情報をオブジェクトで取得するにはパラメータである取得形式に「OBJECT」を指定するか、パラメータなしで使用する。
⚫︎ get_category()でカテゴリー情報を連祖配列で取得するにはパラメータである取得形式に「ARRAY_A」を指定する。
⚫︎ get_category()でカテゴリー情報を添字形式で取得するにはパラメータである取得形式に「ARRAY_N」を指定する。
⚫︎ get_category()は下記のようなケースで使用できる。
・特定のカテゴリーページのみ特定の内容を表示する
・カテゴリーごとにコンテンツやレイアウトを変更する
⚫︎ get_category()以外にも下記の関数でカテゴリー情報を取得できる。
・get_categories()
→WordPressに登録されているカテゴリーのカテゴリー情報を全て取得する関数
・get_the_category()
→投稿記事に付与されているカテゴリー情報を取得することができる関数