【WordPress】親ページとその子孫ページにのみ条件を分岐させる

 

 Web技術

WordPressでWebサイトを作る際、固定ページで特定の親ページと、
その子孫ページの全ての階層ページで条件分岐させたい時があります。

であれば親(会社情報)とその子孫(概要、沿革、事業所、業所1、事業所2)ページの場合に
条件分岐したい。

固定ページでの条件分岐は「is_page()」を使用しますが

などIDかスラッグを1つ1つ記述しなければならず面倒…(つд)

また新たな子孫ページを作るとその度に追記しなければなりません…(つд)(つд)

仮に子孫ページが100ページとかあったとしたらもう…(つд)(つд)(つд)

ですので

親ページと、その子孫ページを含む条件分岐の方法は無いか調べました。

親ページのスラッグで分岐させる

下記は子ページの場合、親ページのスラッグを取得するコードになります。
functions.phpに記述します。

親ページのスラッグが「company(会社情報)」ならば処理を実行させるので
「会社情報の子(概要、沿革、事業所)ページならば処理を実行」
という条件分岐ができます。

これに親ページ(会社情報)も含まれるようにします。

「会社情報(親)かその子ページ(概要、沿革、事業所)ならば処理を実行」
という条件分岐ができました。

ですが上記は子ページまでの分岐で
孫ページ(「事業所1」「事業所2」)が含まれません。

孫ページも全て含めて分岐させたい

「get_post_ancestors($post)」を使う

「get_post_ancestors」は全ての先祖を取得するので
これを使用することで指定の始祖の子孫であるかを判定できます。

「$post」を「$post->ID」に変更して現在のページIDを取得します。

先祖の中に「1(会社情報)」というIDが存在するならば処理を実行させるので
「会社情報の子孫(概要、沿革、事業所、事業所1、事業所2)ページならば処理を実行」
という条件分岐ができます。

これに親ページ(会社情報)も含まれるようにします。

これで
「会社情報(親)かその子孫(概要、沿革、事業所、事業所1、事業所2)ページならば処理を実行」
の条件分岐ができました(*゚▽゚*)


▼参考にさせていただきました。ありがとうございました。

 この記事の投稿者

taka

Webサイト作ってます。
最近のモットー「決して無理をしないスタイル」

twitter: @taka_sbs

  • このエントリーをはてなブックマークに追加
  • 0 follow us in feedly

ページ最上部へ