ショウジンブログ

Learn as if you will live forever, Live as if you will die tomorrow.

固定ページの親ページを判別して条件分岐(出力を分ける)@WordPress

Sponsored Links

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に記述してから 以下を対象テンプレート側に記述します。

f:id:showjinx:20160708122912p:plain

<?php
if (is_parent_slug() === 'japanese') {
    // スラッグが japanese ならtrue
    echo 'japanese';
}
?>