is_post_type_hierarchical()
関数は、投稿タイプが階層を持っているかどうかを判断することができます。
is_post_type_hierarchical() 関数とは
引数に投稿タイプを設定して、その投稿タイプが階層を持っているかどうかを確認することができます。
階層とは、例えば WordPress 標準でも用意されている固定ページという投稿タイプがありますが、こちらは新規固定ページを作成する際に編集画面で「親ページ」を選択することができます。
これはつまり、これから作成するページと親子関係(=これが階層)を持つページを指定することができるということです。
このように階層を持つことができる投稿タイプかどうかを判断するために、is_post_type_hierarchical()
関数は利用することができます。
また、内部では get_post_type_object()
関数が使われています。こちらの関数に関しても理解を深めておくと良いでしょう。
パラメーター
$post_type | 投稿タイプ名 |
使い方
この関数を単体で利用することはほとんどないと思いますが、動作の検証としては以下のようなコードで行うことができます。
if ( is_post_type_hierarchical( 'post' ) ) {
echo "投稿は階層型だよ";
} else {
echo "投稿は階層型じゃないよ";
}
if ( is_post_type_hierarchical( 'page' ) ) {
echo "固定ページは階層型だよ";
} else {
echo "固定ページは階層型じゃないよ";
}
アイデアとしてですが、例えば階層を持ったページを表示しているときだけ <body>
に任意のクラス名を出力したいとします。
そういった場合には、この is_post_type_hierarchical()
関数で必要な処理を行い、wp_body_class
フックで出力するということは考えられますね。
フック
ありません。
まとめ
あまりクラシックテーマ開発でも利用することは少ない関数かもしれませんが、WordPress コアの中ではちょくちょく利用されている箇所もあります。
こういった関数にも触れておくことで、WordPress の奥深しさも感じることができるかもしれませんね。