WORDPRESSでページごとにサイドバーの表示を変えたい場合

WORDPRESSのブログで、例えば、トップページ(index)を表示したときだけ、サイドバーに特定のウィジェットを表示したい。
もしくは個別記事(single)の場合だけ、特定のウィジェットをサイドバーに表示したい。
こういうことはMTやシーサーブログなんかだと簡単にできるけど、ワードプレスでこれをやる方法がわからなくて調べてみた。

他に方法はあるかもしれないけど、僕がやったのは、ウィジェットに表示したい内容を入れサイドバーに置きPHPでページを判別させて表示させるというもの。PHPとか私はぜんぜんわかりませんが、わからなくてもちゃんとできます。

まず、WORDPRESSはそのままだと、ウィジェットでPHPを使えないので、ウィジェットでPHPが使えるようにするプラグイン(PHP Code Widget)を入れてやります。
やりかたは以下

ダッシュボード→プラグイン→新規追加→検索のボックスに「PHP Code Widget」と入れてプラグインの検索ブタンを押す。
トップに「PHP Code Widget」プラグインが表示されるので右側にある「インストール」をクリック。
指示にしたがうと自動でインストールされるので、プラグインを使用するをクリック。
これでプラグインの操作は終わり。

つぎに
ダッシュボード→外観→ウィジェットと進み、「PHPcode」というウィジェットができているのでそこに表示したいものを貼り付けます。

PHPでページを判別させる方法は以下で、以下の物をまるごと「PHPcode」のウィジェット内に貼り付けます。

<?php if(is_home()) { ?> 表示させたい物 <?php } ?>

トップページだけで表示させたい場合はこのようになる

<?php if(is_home() || is_single()) { ?> 表示させたい物 <?php } ?>

トップページと個別記事だけで表示する場合はこれ

上の「表示させたい物」のところに表示させたい物を貼り付けます。
他にも工夫次第でいろんな使い道がありそうです。
ページのもっと詳しい判別方法などは検索すると出てきます。

(homeの場合トップページの「Next »」と「« Previous」で進んだページでも表示されるようです。)

コメントを残す