ワードプレスのis_taxonomy_hierarchical関数の使用方法・解説

概要

is_taxonomy_hierarchical 関数は、指定したタクソノミーに階層(親子)関係があるかどうかをチェックするための WordPress の関数です。タクソノミーとは、投稿やカスタム投稿タイプの分類方法を定義するもので、カテゴリーやタグなどがこれに該当します。この関数は、以下のような機能を実装する際によく使われます。

  1. タクソノミーを持つカスタム投稿タイプの階層を管理する。
  2. フロントエンドでの表示において、親子関係を考慮する。
  3. 管理画面でのタクソノミーの操作を制御する。
  4. ユーザーインターフェースでのフィルター機能を実装する。
  5. タクソノミーの階層を持つデータの構造化。
  6. タクソノミーの選択肢を動的に生成する際に階層を考慮する。
  7. データの取得において、親タクソノミーの情報を取得する。
  8. REST API を通じて階層情報を取得する。

構文

is_taxonomy_hierarchical( string $taxonomy )

パラメータ

  • $taxonomy (string): チェックしたいタクソノミーのスラッグ。

戻り値

  • (bool): タクソノミーが階層型である場合は真 (true)、そうでない場合は偽 (false) を返す。

関連する関数

バージョン

この関数は WordPress 3.0 以降で有効です。

コアファイルのパス

wp-includes/taxonomy.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: 階層の確認

if (is_taxonomy_hierarchical('category')) {
    echo 'カテゴリーは階層型です。';
} else {
    echo 'カテゴリーは非階層型です。';
}

このコードは、カテゴリーが階層型であるかどうかを確認し、結果を表示します。

サンプル 2: カスタムタクソノミーのチェック

$taxonomy = 'custom_taxonomy';
if (is_taxonomy_hierarchical($taxonomy)) {
    // 階層型のタクソノミーに対して特定の処理を行う
    echo $taxonomy . ' は階層型です。';
}

このコードは、特定のカスタムタクソノミーが階層型であるかどうかを確認し、階層型であれば処理を実行します。

サンプル 3: 複数のタクソノミーの処理

$taxonomies = ['category', 'post_tag', 'custom_taxonomy'];
foreach ($taxonomies as $taxonomy) {
    if (is_taxonomy_hierarchical($taxonomy)) {
        echo $taxonomy . ' は階層型です。<br>';
    } else {
        echo $taxonomy . ' は非階層型です。<br>';
    }
}

このコードは、複数のタクソノミーの階層型か非階層型かを確認し、それぞれの結果を表示します。

サンプル 4: 階層型タクソノミーの作成条件

function custom_taxonomy_registration() {
    if (is_taxonomy_hierarchical('custom_taxonomy')) {
        // 階層型タクソノミーを登録する
    }
}
add_action('init', 'custom_taxonomy_registration');

このコードは、特定の条件に基づいてタクソノミーを登録する処理を行います。

サンプル 5: 階層型かどうかで異なる表示

function display_taxonomy_info($taxonomy) {
    if (is_taxonomy_hierarchical($taxonomy)) {
        echo $taxonomy . ' は階層型です。メニューを表示します。';
    } else {
        echo $taxonomy . ' は非階層型です。リストを表示します。';
    }
}
display_taxonomy_info('custom_taxonomy');

このコードは、指定したタクソノミーに基づいて異なる情報を表示します。

この関数について質問する


上の計算式の答えを入力してください