WordPressカテゴリー関連関数まとめ
WordPressでカテゴリーを扱う際に使用する主要関数を体系的に整理した解説。カテゴリー取得・表示・判定・リンク取得・タクソノミー共通処理まで、カテゴリーページや投稿テンプレートを構築するうえで必須となる知識をまとめている。
カテゴリー情報を取得する関数
| get_categories() | 全カテゴリーをカテゴリーオブジェクトの配列で取得する。 |
| get_category() | カテゴリーIDを指定してカテゴリー情報を取得する。 |
| get_category_by_slug() | スラッグからカテゴリーオブジェクト(名称・説明・IDなど)を取得する。 |
| get_the_category() | 投稿に紐づくカテゴリーをオブジェクトの配列で取得する。 |
| get_the_category_by_ID() | カテゴリーIDからカテゴリー名を取得する。 |
| get_category_parents() | 指定カテゴリーの親カテゴリーを階層付き文字列で取得する。 |
| get_term() | タクソノミー共通の取得関数。taxonomy => 'category'を指定することでカテゴリー取得に利用できる。 |
| get_terms() | カテゴリー一覧を汎用的に取得する関数。taxonomy => 'category'を指定して使用する。 |
| get_term_children() | 指定したカテゴリーの子カテゴリー(サブカテゴリ)IDを一覧で取得する。 |
get_categories()
PHP
$categories = get_categories();
foreach ($categories as $cat) { echo $cat->name; }
$categories = get_categories();
foreach ($categories as $cat) {
echo $cat->term_id . ': ' . $cat->name . '<br>';
}get_category()
PHP
$cat = get_category(5);
echo $cat->name;get_category_by_slug()
PHP
$cat = get_category_by_slug('news');
echo $cat->term_id;get_the_category()
PHP
$cats = get_the_category();
foreach ($cats as $cat) { echo $cat->name; }
$cats = get_the_category();
foreach ($cats as $cat) {
echo $cat->name;
}get_the_category_by_ID()
PHP
echo get_the_category_by_ID(7);get_category_parents()
PHP
echo get_category_parents(5, true, ' > ');get_term()
PHP
$term = get_term(5, 'category');
echo $term->name;get_terms()
PHP
$terms = get_terms([
'taxonomy' => 'category',
'hide_empty' => false,
]);
foreach ($terms as $term) {
echo $term->name;
}get_term_children()
PHP
$children = get_term_children(5, 'category');
print_r($children);カテゴリーを表示する関数
| wp_list_categories() | カテゴリー一覧を<ul><li>のリスト形式で出力する。クラスなどは自動付与される。 |
| wp_dropdown_categories() | カテゴリー一覧を<select>のドロップダウン形式で出力する。 |
| the_category() | 投稿に紐づくカテゴリーをリンク付きリスト形式で表示する。 |
| single_cat_title() | カテゴリーページでカテゴリー名を取得・表示する。 |
| category_description() | カテゴリーに登録された説明文を取得する。 |
wp_list_categories()
PHP
wp_list_categories([
'title_li' => '',
]);wp_dropdown_categories()
PHP
wp_dropdown_categories([
'show_option_none' => '選択してください',
]);the_category()
PHP
the_category(', ');single_cat_title()
PHP
single_cat_title();category_description()
PHP
echo category_description();カテゴリーのリンクを取得する関数
| get_category_link() | カテゴリーIDからカテゴリーページのURLを取得する。 |
| get_term_link() | タクソノミー共通のリンク取得関数。カテゴリーの場合はget_category_link()と同等の働きをする。 |
get_category_link()
PHP
$url = get_category_link(5);
echo $url;get_term_link()
PHP
$link = get_term_link(5, 'category');
echo $link;投稿が属するカテゴリーを扱う関数
| wp_get_post_categories() | 投稿が属するカテゴリーIDの配列を取得する。 |
| get_the_category() | 投稿が属するカテゴリーをカテゴリーオブジェクトの配列で取得する。 |
wp_get_post_categories()
PHP
$ids = wp_get_post_categories(get_the_ID());
print_r($ids);get_the_category()
PHP
$cats = get_the_category();
foreach ($cats as $cat) { echo $cat->name; }
$cats = get_the_category();
foreach ($cats as $cat) {
echo $cat->name;
}カテゴリーに関する条件分岐で使う関数
| in_category() | 投稿が指定したカテゴリーに属しているかを判定する。 |
| has_category() | 投稿が特定カテゴリー(ID・スラッグ・配列など)を持つかを判定する。 |
| is_category() | 現在のページがカテゴリーページかどうか判定する。 |
in_category()
PHP
if (in_category('news')) {
echo 'News カテゴリーです';
}has_category()
PHP
if (has_category(['news','event'])) {
echo '該当カテゴリーがあります';
}is_category()
PHP
if (is_category()) {
echo 'カテゴリーページです';
}現在のクエリ情報からカテゴリー情報を取得する関数
| get_queried_object() | カテゴリーページで現在表示しているカテゴリーオブジェクトを取得する。 |
| get_queried_object_id() | カテゴリーページで現在のカテゴリーIDを取得する。 |
get_queried_object()
PHP
$cat = get_queried_object();
echo $cat->name;get_queried_object_id()
PHP
echo get_queried_object_id();まとめ
WordPressのカテゴリー操作は、用途ごとに次のように分類できる:
- カテゴリーを取得する:get_category / get_categories / get_termsなど
- カテゴリーを表示する:wp_list_categories / the_categoryなど
- カテゴリーリンクを取得する:get_category_link / get_term_linkなど
- 投稿のカテゴリーを扱う:get_the_category / wp_get_post_categories
- カテゴリー条件を判定する:in_category / has_category / is_category
- カテゴリーページの情報取得:get_queried_object / get_queried_object_id
以上を理解しておくと、テンプレートのカスタマイズからテーマ開発までカテゴリー操作全般に対応できる。