wordpressにおいてトップページかどうか判定する関数にis_home()とis_front_page()ってのがある。 この二つ、非常に分かりづらいのですよね。 というのも個人の設定に依存するので。 今回はそんなお話。 ソースを見れば分かりやすいかもしれないけど、is_front_page()のソースはこうなっている。 [php] public function is_front_page() { // most likely case if ( 'posts' == get_option( 'show_on_front') && $this->is_home() ) return true; elseif ( 'page' == get_option( 'show_on_front') && get_option( 'page_on_front' ) && $this->is_page( get_option( 'page_on_front' ) ) ) return true; else return false; } [/php] 下記オプションのラジオボタン部分がshow_on_front、セレクトボックスがpage_on_frontね。 show_on_front つまりwordpressの表示設定において「フロントページの表示」を「最新のページ」にしている場合はis_front_page()とis_home()は同じ動きします。 でも、「固定ページ」にしている場合、フロントページを設定していないとis_front_page()はfalse返します。 「固定ページ」にしていて投稿ページにした場合、is_home()がtrueを返すのです。 しっかし分かりづらい仕様ですな。 この関数をテーマ上で使うのならpage.phpとhome.php両方用意するのがベターかね。 functions.phpもしくはプラグイン上で使うのならif文に両方書いてORでつなげるのがいいのかもしれないっすな。 自分もたまーにやるけど、トップページだけなにか出したいっていう改造をしたい場合は ここらへん気をつけるといいですよ。