WordPress – is_home()とis_front_page()でちょっとはまった

今回作成しているデモサイトは、固定ページをトップページにしている。
まぁ、なんとなく企業サイトをイメージしている感じ。
ところが、これだと以前作ったパンくずリストがうまく表示されない。
と、言うか無駄に表示されてしまう。

まぁ、トップページはパンくずリストなんて要らないかなーなんて思って、
こんな感じに実装していたワケですが・・

[code lang=”php” line=”1″]
function get_breadcrumbs(){
if ( !is_home() ){
      ・・以下略
[/code]

トップページもしっかり表示されてしまったりする。
何でかなーと、思って調べたところ、Codexにはっきり書かれていた。

is_home() : メインブログページが表示されている場合。
is_front_page() :サイトのフロントページが表示されている場合(投稿・固定ページにかかわらず)。
なんで、この場合は「is_front_page()」が正解らしい。

ちなみに、is_home()は何かと曲者のような記事も見かけた。

swhrykの日記 – is_front_page() と is_home()

暇があったら、その内調べてみよう。

コメント

  1. kohara より:

    ほんとだ。
    今まで全てのサイトで is_home() がまともに動作したことなかったんだけど is_home() を is_front_page() に置き換えてみたら見事に動作しました。
    今までトップページだけ別テンプレートを使ったりページ名を取得して分岐にしたり、結構遠回りしてきましたが、これからは本来のあるべき姿で対応していけそうです。
    貴重な情報ありがとうございました。

    そういえばどこかで「WordpressはあくまでCMSというよりブログだから…」ということを解説されている方がいました。
    本来固定ペ^ーじでいいはずのところを投稿ページで作りこまれている人も多くいて、「なんじゃこりゃ?」って(自分の心の中で)罵ったこともさえあります。
    カテゴリーやタグも投稿ページじゃないと使えないんですよね。
    なんか全貌がやっと見えてきた気がします。
    本当にありがとうございました。

タイトルとURLをコピーしました