固定ページの親ページを判別して条件分岐(出力を分ける)@WordPress
WordPressの固定ページで親子関係を持っている場合、指定した固定ページを親に持つ子ページを指定する条件文の例です。
必要となるケースはいろいろあると思いますが、私が実際に必要としたのは6言語対応の場合でした。
親に「日本語科」という固定ページ(のスラッグ)があり、この子ページとして6言語の固定ページが以下のように存在します。
- WordPressサイトURL/japanese/jp
- WordPressサイトURL/japanese/en
- WordPressサイトURL/japanese/cn
- WordPressサイトURL/japanese/tw
- WordPressサイトURL/japanese/kr
- WordPressサイトURL/japanese/vn
親ページのスラッグが「japanese」のこれら6ページだけを対象として指定し、出力するものをその他と分けるのに使いました。
functions.php
使用するテーマのfunctions.phpに以下を追記します。
/** 固定ページの親ページを判別して条件分岐 ex.Aページを親に持つ子ページすべてに同じものを表示させたい **/ function is_parent_slug() { global $post; if ($post->post_parent) { $post_data = get_post($post->post_parent); return $post_data->post_name; } }
上記をfunctions.phpに記述してから 以下を対象テンプレート側に記述します。
<?php if (is_parent_slug() === 'japanese') { // スラッグが japanese ならtrue echo 'japanese'; } ?>