2025年08月11日[月曜日]

is_home()関数完全リファレンス

  • 2025/08/06
  • REFERENCE
  • WordPressの関数
  • 0comments
  • 20views
  • 約8分で読めます

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() – サイトのトップページを判定

is_front_page() は、サイトのトップページ(フロントページ) を表示している時に true を返します。

<?php if (is_front_page()) : ?>
    <p>ここはサイトのトップページです</p>
<?php endif; ?>
PHP

is_home() – 投稿一覧ページを判定

is_home() は、メインの投稿一覧ページ(ブログのメインページ) を表示している時に true を返します。

<?php if (is_home()) : ?>
    <p>ここは投稿一覧ページです</p>
<?php endif; ?>
PHP

重要なポイント

WordPressの設定により、トップページ投稿一覧ページ が同じ場合と異なる場合があります:

  • 同じ場合: 設定で「最新の投稿」を選択 → トップページに投稿一覧が表示
  • 異なる場合: 設定で「固定ページ」を選択 → トップページは固定ページ、投稿一覧は別ページ

この違いが、2つの関数の動作に大きく影響します。

関数の詳細

is_front_page()

パラメータ: なし

戻り値: booleantrue または false

説明: サイトのフロントページ(トップページ)を表示している場合に true を返します。

is_home()

パラメータ: なし

戻り値: booleantrue または false

説明: メインの投稿一覧ページを表示している場合に true を返します。

設定による動作の違い

WordPressの管理画面 > 設定 > 表示設定 でのホームページ設定によって、これらの関数の動作が変わります。

設定パターン1: 最新の投稿

設定: ホームページの表示 → 最新の投稿

表示ページis_front_page()is_home()
トップページ(投稿一覧)truetrue
投稿詳細ページfalsefalse
固定ページfalsefalse

設定パターン2: 固定ページ

設定: ホームページの表示 → 固定ページ

ホームページ: 「トップページ」(ID: 10) 投稿ページ: 「ニュース」(ID: 20)

表示ページis_front_page()is_home()
トップページ(固定ページ)truefalse
ニュース(投稿一覧)falsetrue
投稿詳細ページfalsefalse
その他の固定ページfalsefalse

実用例

例1: トップページのみに表示

<?php if (is_front_page()) : ?>
    <div class="hero-banner">
        <h1>ようこそ、当サイトへ</h1>
    </div>
<?php endif; ?>
PHP
結果(最新の投稿設定時)
<div class="hero-banner">
  <h1>ようこそ、当サイトへ</h1>
</div>
PHP

例2: 投稿一覧ページのみに表示

<?php if (is_home()) : ?>
  <div class="blog-header">
    <h1>最新記事</h1>
  </div>
<?php endif; ?>
PHP
結果(固定ページ設定時、投稿一覧ページで)
<div class="blog-header">
    <h1>最新記事</h1>
</div>
HTML

例3: 条件に応じた表示切り替え

<?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>
HTML

例4: CSSクラスの動的付与

<body class="<?php
if (is_front_page()) {
    echo 'front-page ';
}
if (is_home()) {
    echo 'home ';
}
?>">
PHP
結果(最新の投稿設定時)
<body class="front-page home ">
HTML
結果(固定ページ設定時、トップページで)
<body class="front-page ">
HTML

例5: 特定のコンテンツをトップページから除外

<?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>
HTML

例6: 投稿一覧ページでの表示制御

<?php if (is_home() && !is_front_page()) : ?>
<div class="blog-description">
  <p>当サイトの最新記事をご覧いただけます。</p>
</div>
<?php endif; ?>
PHP
結果(固定ページ設定時の投稿一覧ページで)
<div class="blog-description">
  <p>当サイトの最新記事をご覧いただけます。</p>
</div>
PHP

よくある間違い

間違い1: is_front_page() と is_home() の混同

// 間違い: トップページでこれを期待したが表示されない場合がある
<?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

間違い2: 両方の条件を考慮しない

// 間違い: 最新の投稿設定時に動作しない
<?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

間違い3: 設定変更時の動作確認不足

設定を変更した場合は、必ず両方のパターンでテストしましょう。

// テスト用コード
<?php
echo 'is_front_page(): ' . (is_front_page() ? 'true' : 'false') . '<br>';
echo 'is_home(): ' . (is_home() ? 'true' : 'false') . '<br>';
?>
PHP

まとめ

is_front_page()is_home() 関数は WordPressテーマ作成でよく使用される条件分岐関数です。

  • is_front_page(): サイトのトップページを判定
  • is_home(): メインの投稿一覧ページを判定
  • 「管理画面 > 設定 > 表示設定」により動作が変わる
  • 両方の条件を組み合わせることで柔軟な表示制御が可能
  • 設定変更時は必ず動作確認を行う

トップページの表示制御には is_front_page()、投稿一覧ページの表示制御には is_home() を使用すると覚えておけば間違いありません。

この関数が使われている投稿

この記事の評価をお願いします

評価をすると「既読」となり、まだ読んでいない記事を区別できます。

この投稿をシェアする

コメントを残す

CAPTCHA



STAY CONNECTED

wp-ch Admin

現役のフリーランスエンジニアがWordPressによるWebサイト構築を基礎から実践テクニックまで徹底解説します。

たくさんの方がフォローしてくれています。あなたもぜひ、情報を受け取ってください。

STORY|ストーリー

WordPressを効率よく確実に学ぶためには、学習の順序が大切です。知識が自然に積み上がるよう、学習ステップに沿って記事を順番に並べています。

学習ストーリー第40話まで掲載中

全ストーリーを見る