is_front_page()とis_home()の違い

is_front_page()とis_home()の違い

WordPressには様々な条件分岐タグがあり、その中にis_front_page()is_home()というタグがあります。この2つの条件分岐は、動きが似ていてちょっとややこしいですよね。

Codexでは、以下のように説明されています。

メインページ

is_home()

メインブログページが表示されている場合。これは、サイトにある時系列のブログコンテンツを表示するページです。もしあなたがフロントページに固定ページを設定していた場合(以下を参照)、Administration > Settings > Readingであなたが「投稿ページ」として設定したページでのみ、trueになります。

フロントページ

is_front_page()

投稿・固定ページにかかわらず、サイトのフロントページが表示されている場合。true を返すのは、表示設定の「トップページの表示」として「最新の投稿」を設定している場合には、メインブログページが表示されるとき
「固定ページ」を設定している場合には、「フロントページ」として選択した固定ページが表示されるとき

う、うーむ、、、なんともややこしいですね。

今回は、これらの条件分岐の違いについてご紹介したいと思います。

フロントページの表示が「最新の投稿」になっている場合

表示設定が最新の投稿になっている場合

WordPress管理画面の[設定] – [表示設定]で、フロントページの表示が「最新の投稿」になっている場合は、どちらもサイトのトップページかどうかで分岐させます。

つまり、is_front_page()もis_home()も同じ動きになります。これがややこしくしている原因でしょうね。

フロントページの表示が「固定ページ」になっている場合

フロントページの表示が「固定ページ」になっている場合

[設定] – [表示設定]で、フロントページの表示が「固定ページ」になっている場合は、以下のように動きが異なります。

is_front_page():フロントページ(サイトトップ)かどうか
is_home():ブログのトップページ(新着一覧)かどうか

ここが、これら条件分岐の肝となる部分ですね。

あとがき

仕組みがわかってしまえばなんてことないですね。

私は、フロントページの表示が「最新の投稿」になっている場合も、サイトのトップページかどうかで条件分岐させる際はis_front_page()を使っています。is_home()を使った方がいいんですかね・・・(>_<)未だにどちらが正解かわかりませんが、”どちらでもいい”が正解でしょうね。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です