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

関連記事

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

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

wordpressのテンプレート階層

wordpress使用している時、時々どのファイルを参照しているのか分からなくなるので記録。 目次1 トップページ1.1 トップが固定ページ1.2 トップが固定ページで投稿ページを設定1.3 トップが ...

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

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

WP Custom Fields Searchのsearchボタンを日本語に

仕事でサイトを作っていて 複数検索するのにWP Custom Fields Search というプラグインを使っているのだけど デフォルトだと検索ボタンのvalueが「search」となっているので変 ...

wordpress 条件分岐【特定の親カテゴリに属する場合】

特定の親カテゴリに属する子カテゴリがたくさんある場合(たくさんなくてもいいけど)、条件分岐で子カテゴリを指定すると数多くの指定が必要になるので非常に手間がかかる。その上、子カテゴリが増えた場合にまたそ ...