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

関連記事

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

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

wordpressのテンプレート階層

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

困った!wordpressのログイン画面にアクセスできなくなった!

ある日、記事を書こうとしたら wordpressのログイン画面にいくとアクセスできなくなっていた! 目次1 エラーメッセージ2 対応策1. .htaccessファイルのIPを変更2.1 パーマリンク設 ...

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

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

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

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