wordpress

投稿日:2018年12月12日 更新日:

wordpressで特定の固定ページを親子ともに表示させる/表示しない

通常wordpressで階層といえばカテゴリを使用しますが 固定ページを使って階層分けしているサイトがあり そのサイトで特定の階層だけ表示したい(または表示しない)場合の方法 以下の記事にとても分かりやすく書いてくれています!

まずは、親子関係を判定する関数をfunction.phpに記述

function page_is_ancestor_of($slug){
    global $post;

    // 親か判別したい固定ページスラッグからページ情報を取得
    $page = get_page_by_path($slug);
    $result = false;
    if(isset($page)){
        foreach ($post->ancestors as $ancestor) {
        if($ancestor == $page->ID){ $result = true; }
        }
    }
    return $result;
}

使いたいテンプレートで関数を呼び出します

親子関係を判定する関数をfunction.phpに記述したら 使いたいテンプレートで関数を呼び出します。
今回は、特定の固定ページの親子階層以外の固定ページに、 共通のものを表示したかったのでこんな感じで書きました。

<?php if(is_page('about') || page_is_ancestor_of('about')): ?>
    about用のサイドバー

<?php elseif(is_page('company') || page_is_ancestor_of('company')): ?>
    company用のサイドバー

<?php elseif(is_page()):
	それ以外の固定ページで表示
?>

<?php endif; ?>

おかげで階層をもたない固定ページも表示の切り替えができました。
詳しい解説は以下のページで。
【WordPress】固定ページの親子ページごとに表示を切り替える方法
ありがとうございます!

- wordpress

関連記事

パーマリンクの設定

stinger8のダウンロードサイトにはパーマリンク設定を"postname"にしているとあったのでそのように設定してみた。 で、実際に新規で記事を追加すると 記事のタイトルが反映されURLは以下のよ ...

wordpressの記事が一部表示されない不具合

いつのタイミングか不明だけどサイトを見ると記事の一部が表示されない不具合があった。 他のサイトは問題なくて、特定のサイトだけ。 しかも表示される記事もあればされない記事もある。 ただ、カテゴリに属して ...

WordPress と Facebookの連携が表示されない原因

dddwordpressのテーマ「xeory_extension」を使っていた時 初期設定でいくつかの項目を入力するとfacebookとの連携ができるようになってたのでテストサイトで設定項目を入力する ...

特定のカテゴリ一覧だけ見た目を変えたい時に

特定のカテゴリ一覧だけ見た目を変えたい時に。 こんな簡単な方法でできます。 知ってたら色々使えそう。 【WordPress】任意のテンプレートパーツを読み込む関数[get_template_part( ...

特定の固定ページのみ異なるヘッダーにする

目次1 特定の固定ページのみ異なるヘッダーにする方法1.1 1. 異なるヘッダーを使用するページ用のpage-new.phpを作成します。(ファイルネームは任意です)1.2 2. page-new.p ...