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

以上を理解しておくと、テンプレートのカスタマイズからテーマ開発までカテゴリー操作全般に対応できる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


L o a d i n g . . .