関連する関数
is_home()関数完全リファレンス
WordPressテーマ開発で必須となる is_front_page() と is_home() 関数の基本と活用法を解説します。管理画面の表示設定による動作の違いや実用的なコード例を交え、初心者でも理解できるよう詳しく紹介。トップページと投稿一覧ページの判定方法を完全マスターできます。
WordPressでテーマを作成する際、現在表示されているページが特定のページかどうかを判定するために is_front_page()
と is_home()
関数を使用します。
is_front_page()
は「サイトのトップページ(フロントページ)かどうか」を判定し、is_home()
は「投稿一覧ページ(ブログのメインページ)かどうか」を判定します。
目次
これらの関数を理解する上で最も重要なのは、管理画面 > 設定 > 表示設定 の「ホームページの表示」設定により、動作が大きく変わることです。
単純に「トップページ」と「投稿一覧ページ」を判定するだけでなく、WordPressの設定によって同じページを指す場合と、異なるページを指す場合があります。この設定の違いを理解せずに使用すると、期待通りに動作しない場合があります。
is_front_page()
と is_home()
は、どちらもページの種類を判定する関数です。初心者の方によくある混同を避けるため、まずそれぞれの役割を理解しましょう。
is_front_page();
is_home();
PHPどちらも引数は不要で、戻り値は true
または false
です。
is_front_page()
は、サイトのトップページ(フロントページ) を表示している時に true
を返します。
ここはサイトのトップページです
is_home()
は、メインの投稿一覧ページ(ブログのメインページ) を表示している時に true
を返します。
<?php if (is_home()) : ?>
<p>ここは投稿一覧ページです</p>
<?php endif; ?>
WordPressの設定により、トップページ と 投稿一覧ページ が同じ場合と異なる場合があります:
この違いが、2つの関数の動作に大きく影響します。
パラメータ: なし
戻り値: boolean
(true
または false
)
説明: サイトのフロントページ(トップページ)を表示している場合に true
を返します。
パラメータ: なし
戻り値: boolean
(true
または false
)
説明: メインの投稿一覧ページを表示している場合に true
を返します。
WordPressの管理画面 > 設定 > 表示設定 でのホームページ設定によって、これらの関数の動作が変わります。
設定: ホームページの表示 → 最新の投稿
表示ページ | is_front_page() | is_home() |
---|---|---|
トップページ(投稿一覧) | true | true |
投稿詳細ページ | false | false |
固定ページ | false | false |
設定: ホームページの表示 → 固定ページ
ホームページ: 「トップページ」(ID: 10) 投稿ページ: 「ニュース」(ID: 20)
表示ページ | is_front_page() | is_home() |
---|---|---|
トップページ(固定ページ) | true |
|
ニュース(投稿一覧) | false |
|
投稿詳細ページ | false | false |
その他の固定ページ | false | false |
<?php if (is_front_page()) : ?>
<div class="hero-banner">
<h1>ようこそ、当サイトへ</h1>
</div>
<?php endif; ?>
PHP<div class="hero-banner">
<h1>ようこそ、当サイトへ</h1>
</div>
HTML<?php if (is_home()) : ?>
<div class="blog-header">
<h1>最新記事</h1>
</div>
<?php endif; ?>
PHP<div class="blog-header">
<h1>最新記事</h1>
</div>
HTML<?php
if (is_front_page() && is_home()) {
// 最新の投稿設定時のトップページ
echo '<h1>最新記事一覧</h1>';
} elseif (is_front_page()) {
// 固定ページ設定時のトップページ
echo '<h1>ホームページ</h1>';
} elseif (is_home()) {
// 固定ページ設定時の投稿一覧ページ
echo '<h1>ブログ</h1>';
}
?>
PHP<h1>最新記事一覧</h1>
HTML<h1>ホームページ</h1>
HTML<h1>ブログ</h1>
<body class="<?php
if (is_front_page()) {
echo 'front-page ';
}
if (is_home()) {
echo 'home ';
}
?>">
PHP<body class="front-page home ">
PHP<body class="front-page ">
HTML<?php if (!is_front_page()) : ?>
<div class="breadcrumb">
<a href="<?php echo home_url(); ?>">ホーム</a> >
<?php echo get_the_title(); ?>
</div>
<?php endif; ?>
PHP<div class="breadcrumb">
<a href="https://example.com/">ホーム</a> > お問い合わせ
</div>
PHP<?php if (is_home() && !is_front_page()) : ?>
<div class="blog-description">
<p>当サイトの最新記事をご覧いただけます。</p>
</div>
<?php endif; ?>
PHP<div class="blog-description">
<p>当サイトの最新記事をご覧いただけます。</p>
</div>
HTML// 間違い: トップページでこれを期待したが表示されない場合がある
<?php if (is_home()) : ?>
<div class="welcome-message">ようこそ!</div>
<?php endif; ?>
PHP// 正解: 設定に関わらずトップページで表示
<?php if (is_front_page()) : ?>
<div class="welcome-message">ようこそ!</div>
<?php endif; ?>
PHP// 間違い: 最新の投稿設定時に動作しない
<?php if (is_front_page() && !is_home()) : ?>
<div class="static-page-content">固定ページコンテンツ</div>
<?php endif; ?>
PHP// 正解: 条件を正しく設定
<?php if (is_front_page()) : ?>
<?php if (is_home()) : ?>
<div class="blog-front-page">ブログトップ</div>
<?php else : ?>
<div class="static-page-content">固定ページコンテンツ</div>
<?php endif; ?>
<?php endif; ?>
PHP設定を変更した場合は、必ず両方のパターンでテストしましょう。
// テスト用コード
<?php
echo 'is_front_page(): ' . (is_front_page() ? 'true' : 'false') . '<br>';
echo 'is_home(): ' . (is_home() ? 'true' : 'false') . '<br>';
?>
PHPis_front_page()
と is_home()
関数は WordPressテーマ作成でよく使用される条件分岐関数です。
is_front_page()
: サイトのトップページを判定is_home()
: メインの投稿一覧ページを判定トップページの表示制御には is_front_page()
、投稿一覧ページの表示制御には is_home()
を使用すると覚えておけば間違いありません。
WordPressを効率よく確実に学ぶためには、学習の順序が大切です。知識が自然に積み上がるよう、学習ステップに沿って記事を順番に並べています。
学習ストーリー第40話まで掲載中