Sidebar.phpを完成させる・ページごとに違うサイドバーを表示する
公開:2020.05.19
更新:2020.05.23
調べると、このサイトのサイドバーは三種類ほどありました。
(自分で把握してないのかよ)
目次
現状確認
top- 猫ama・カテゴリ・タグ・よく読まれている記事・カレンダー
note- プロフィール・カレンダー・ギャラリー・よく読まれている記事
single- 猫ama・プロフィール・カテゴリ・ギャラリー・タグ・カレンダー・検索・よく読まれている記事
https://kiborineko.com
こんな感じでしたね。(猫amaは猫の写真集のリンクのことです。)
せっかくなので、利便性を考えて検索フォームをもうちょっと上に配置することにしました。
現状は……というと……
各テンプレートにそのままサイドバーのHTML書いてました…..ハイ…….。
この機なので全部サイドバーテンプレートにまとめていきます!!
if文を使った手法
調べたところやはりいろんな方法があるみたいですが、最初はif文で試してみました。
やり方としてはsidebar.phpに直接、
<?php if(is_single()) { ?>
//個別投稿ページで表示するサイドバー
<?php }elseif(is_front_page()){ ?>
//フロントページで表示するサイドバー
<?php }elseif(is_archive()){ ?>
//アーカイブページで表示するサイドバー
<?php else{} ?>
という感じに書いていく手法ですね。
固定ページの場合はis_page()ですね。
それぞれ、当てはまるページの時に「true」を返すのでif文が動いて、それぞれの処理をしていきます。
is_〇〇〇()の「()」の中は様々なオプションが指定できるようです。詳しくはWordPress Codex様をどうぞ。
別々のサイドバーテンプレートを作る手法
と、私も最初if文で動かそうと進めていたのですが、想像以上に行数がえらいこっちゃやな….と思っていた矢先にいい処理が現れたので、これも書いときます。
sidebar.phpを読み込むのにお馴染みの、
<?php get_sidebar(); ?>
ですが、これもさっき書いたようにオプションがあるみたいで、例えば「()」の中を
<?php get_sidebar('useyaro'); ?>
とすると、ディレクトリにある
「sidebar-useyaro.php」を読み込むことが出来るみたいなんですね。
つまり、ページごとに違うサイドバーファイルを読み込むことが出来る!!という事ですね!!
結局私はこちらの手法を使って解決しました。
ついでにごちゃごちゃだったcssも改修してスッキリィ…….
こちらも詳しくはWordPress Codex様をどうぞ。
スッキリスッキリィ…….