wordpressカスタマイズ

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

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

通常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カスタマイズ

関連記事

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

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

【プラグイン】contact form7のカスタマイズ

contact form7には特別なメールタグがあり、使用できる 特別なメールタグ Contact form 7 のフォームに自動的に記事タイトルを入れる方法 http://www.doya-doya ...

投稿ページにアイキャッチ画像を追加

新規投稿した際に設定したアイキャッチ画像を 投稿ページにも表示するようにsingle.phpに以下を記載。 <?php if ( has_post_thumbnail() ): // サムネイル ...

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

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

wordpressトップページに新着記事を表示する

固定ページをトップページに設定して、 そのページに新着記事や商品一覧を表示したいことってサイト作ってるとよくあること。 私は以下のページを参考にして作成しました。 [WP]WordPress で固定ペ ...

翻訳する