MENU

is_page()– function –

is_page() は、 現在表示されているページが「固定ページ」かどうかを判定 するためのテンプレートタグです。特定のページかどうかを ID、スラッグ、またはページ名 でチェックすることもできます。

機能の説明

  • is_page() は、 現在のページが「固定ページ」かどうか を真偽値(true / false)で返します。
  • パラメータを渡すことで、 特定の固定ページの判定 も可能です。
  • フロントページカスタムテンプレート での条件分岐に使われます。

シンプルなコード例

if ( is_page() ) {
    echo 'これは固定ページです';
}

上記のコードでは、 固定ページであれば「これは固定ページです」という文字列を表示 します。

使い方の解説

  • is_page() は、 テンプレートファイル内で条件分岐 によく使われます(例: header.phpindex.php)。
  • 引数を指定しなければ すべての固定ページに対応 しますが、引数にIDやスラッグ、ページ名を指定することで 特定のページを判定 することもできます。

使用例

if ( is_page(42) ) {
    echo 'このページはID 42の固定ページです';
} elseif ( is_page('about') ) {
    echo 'このページは「about」というスラッグの固定ページです';
} elseif ( is_page(array(42, 'about', 'contact')) ) {
    echo '指定されたIDまたはスラッグのページのいずれかです';
} else {
    echo 'これは固定ページではありません';
}
  • is_page(42): IDが42のページを判定します。
  • is_page('about'): スラッグが「about」のページを判定します。
  • is_page(array(42, 'about', 'contact')): IDまたはスラッグが指定されたいずれかのページに一致した場合にtrueを返します。
  • 上記のコードでは、 複数の条件を使って異なる出力を行う例 です。

一緒に使うことが多い関連タグ

is_home()

is_home() は、 フロントページがブログ投稿の一覧ページかどうかを判定 するタグです。

is_page() と組み合わせることで、 固定ページかブログ一覧ページか を条件分岐できます。

if ( is_home() ) {
    echo 'これはホームページ(ブログ一覧ページ)です';
} elseif ( is_page() ) {
    echo 'これは固定ページです';
}

    is_home() でブログ一覧かどうかを判定し、 そうでなければ固定ページかを判定 しています。

    is_front_page()

    is_front_page() は、 サイトのフロントページ(トップページ)が現在表示されているかを判定 します。

    is_page() と一緒に使うことで、 フロントページ用の条件分岐 が可能です。

    if ( is_front_page() && is_page('home') ) {
        echo 'これはホームページの固定ページです';
    }

    is_front_page()is_page() の組み合わせで、 トップページが特定の固定ページかどうか を判定しています。

    追加情報を取得したい場合

    get_the_title() でページタイトルを取得

    is_page() を使用した条件分岐内で、 get_the_title() を使うことで 固定ページのタイトル を取得できます。

    if ( is_page() ) {
        echo 'このページのタイトルは: ' . get_the_title();
    }

    get_the_title()現在の固定ページのタイトル を表示します。

    出力できる情報

    • title: ページタイトル
    • ID: 固定ページのID

    想定されるトラブル

    is_page()false を返す

    • is_page() が使用される場所が間違っている可能性があります(例: 投稿ページで実行)。
    • URLのパーマリンクが正しく設定されていない 場合もあります。

    解決方法

    1. is_page() が実行される場所 を確認し、適切なテンプレートファイル内に配置する。
    2. WordPressの管理画面から パーマリンク設定をリフレッシュ する。

    特定のページが判定されない

    • IDやスラッグが間違っている可能性があります。
    • ページの スラッグやIDの変更 による影響も考えられます。

    解決方法

    1. 管理画面で 正確なページIDやスラッグ を確認する。
    2. 使用しているキャッシュが原因の場合は キャッシュをクリア する。

    Q&A

    投稿ページにも is_page() を使えますか?

    いいえ、is_page()固定ページ専用 のテンプレートタグです。 投稿ページでは常にfalse を返します。

    特定のページテンプレートで is_page() を使う方法は?

    is_page()カスタムテンプレート内で使用 することで、特定のページ用の条件を作成できます。

    if ( is_page('about') ) {
        // aboutページ用の処理
    }

    IDやスラッグ以外の判定はできますか?

    いいえ、is_page() の引数は ページID、スラッグ、またはページ名のみ に対応しています。

    まとめ

    is_page() は、 現在のページが固定ページかどうかを判定する便利なテンプレートタグ です。特定のページをIDやスラッグで判定することもでき、is_home()is_front_page() と組み合わせることで、 高度な条件分岐 を行えます。

    カスタマイズ例

    1