概要
is_taxonomy_hierarchical
関数は、指定したタクソノミーに階層(親子)関係があるかどうかをチェックするための WordPress の関数です。タクソノミーとは、投稿やカスタム投稿タイプの分類方法を定義するもので、カテゴリーやタグなどがこれに該当します。この関数は、以下のような機能を実装する際によく使われます。
- タクソノミーを持つカスタム投稿タイプの階層を管理する。
- フロントエンドでの表示において、親子関係を考慮する。
- 管理画面でのタクソノミーの操作を制御する。
- ユーザーインターフェースでのフィルター機能を実装する。
- タクソノミーの階層を持つデータの構造化。
- タクソノミーの選択肢を動的に生成する際に階層を考慮する。
- データの取得において、親タクソノミーの情報を取得する。
- 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');
このコードは、指定したタクソノミーに基づいて異なる情報を表示します。