【初心者向け】WordPressのis_page()の使い方と具体例をやさしく解説

「特定の固定ページだけにスタイルを変えたい」「お問い合わせページだけ処理を変えたい」
そんなときに便利なのが、WordPressの条件分岐タグ is_page() です。

でも、最初は「どう使えばいいの?」「投稿と何が違うの?」と迷うこともあるはず。

この記事では、初心者の方でもわかるように
is_page()の基本的な使い方や実例を、シンプルに解説していきます!

is_page()とは?

is_page() は、WordPressの条件分岐タグの一つです。
この関数を使うと、「今表示しているページが固定ページかどうか?」を判断できます。

つまり、以下のようなことができるようになります:

  • 固定ページだけで特定のCSSやJavaScriptを読み込む
  • 特定のページだけデザインを変える
  • 投稿やアーカイブページと処理を分ける など

is_page()は「固定ページ」を判定するための関数ですが、
投稿ページを判定したい場合は is_single()、トップページを判定したい場合は is_home() を使います。

👉 is_single()の使い方と具体例はこちら
👉 is_home()の使い方と具体例はこちら

🧱 基本構文

is_page()

この関数は、表示中のページが「固定ページ」の場合に true(真)を返します

📌 例:固定ページだけに処理を実行したい場合

if ( is_page() ) {
    // この中の処理は、固定ページのときだけ実行される
}

次のセクションでは、is_page()の具体的な使い方(IDやスラッグを指定する方法)について詳しく紹介していきます!

🛠 is_page()の使い方

is_page()は、条件に応じて表示や処理を切り替えたいときに使います。
ここでは、よく使うパターンを順番に紹介していきます。

✅ ① すべての固定ページに対して処理を行う

if ( is_page() ) {
    // 固定ページのときに実行したい処理
}

✅ ② 固定ページを「ID」で指定する

if ( is_page(42) ) {
    // IDが42の固定ページのときに実行
}

🔸 IDは、管理画面でページ編集画面を開いたときのURL(post=42など)から確認できます。

✅ ③ 固定ページを「スラッグ(英語名)」で指定する

if ( is_page('about') ) {
    // スラッグが 'about' の固定ページのときに実行
}

🔸 スラッグは、固定ページの「パーマリンク設定」で決めた英数字の名前です。

✅ ④ 固定ページを「タイトル」で指定する(非推奨)

if ( is_page('会社概要') ) {
    // タイトルが '会社概要' の固定ページのときに実行
}

⚠ タイトルは変更される可能性があるため、IDやスラッグを使うほうが安全です。

✅ ⑤ 複数のページをまとめて指定する

if ( is_page(array(42, 'about', 'contact')) ) {
    // IDが42 または スラッグが 'about'、'contact' のときに実行
}

次は、is_page()具体的な活用例をご紹介します。
「実際にどんなふうに使えばいいの?」という疑問にお答えします!

💡 is_page()の活用例

「使い方はわかったけど、実際どんなときに使うの?」
ここでは、is_page()を活用した実用的な例を紹介します。

🧩 ① 固定ページだけにCSSを読み込む

if ( is_page() ) {
    wp_enqueue_style( 'custom-page-style', get_template_directory_uri() . '/css/page-style.css' );
}

🔸 functions.phpに書くことで、固定ページだけ専用のCSSを読み込むことができます。

📞 ② お問い合わせページだけにJavaScriptを読み込む

if ( is_page('contact') ) {
    wp_enqueue_script( 'contact-form', get_template_directory_uri() . '/js/contact.js', array(), null, true );
}

🔸 ページスラッグが contact のときだけ、JavaScriptファイルを読み込みます。

🖼 ③ 固定ページと投稿でデザインを分ける

if ( is_page() ) {
    get_template_part( 'template-parts/content', 'page' );
} else {
    get_template_part( 'template-parts/content', 'post' );
}

🔸 固定ページと投稿で、異なるテンプレートファイルを読み込む例です。

こうした工夫で、ページごとの見せ方を自由にコントロールできるようになります!

次は、「よくある注意点と落とし穴」について解説していきます。
初心者のうちに知っておくとトラブルを避けられますよ。

⚠ よくある注意点と落とし穴

is_page()はとても便利なタグですが、使い方によってはトラブルになることもあります。
ここでは、初心者の方がよくやりがちな間違いや注意すべきポイントをお伝えします。

1. ループ内では使わない

while ( have_posts() ) : the_post();
    if ( is_page() ) {
        // これはループ内では動作しません
    }
endwhile;

🔸 is_page()はループの外で使用するべきです。
ループ内では、すでに投稿やページが処理されているので、is_page()は正しく動作しません。

2. is_page()は投稿ページには反応しない

is_page()は、固定ページだけを判定します。
例えば、投稿ページ(is_single())やアーカイブページ(is_archive())では、is_page()falseになります。

if ( is_page() ) {
    // 固定ページのときだけ実行
} elseif ( is_single() ) {
    // 投稿ページのときだけ実行
}

👉 is_single()の詳しい使い方や条件分岐の実例はこちらの記事で解説しています。

3. タイトルで指定は避ける

if ( is_page('会社概要') ) {
    // タイトルが '会社概要' のときに実行
}

タイトル指定は、ページタイトルが変更される可能性があるため、IDやスラッグを使う方が安全です。

4. 複数条件を組み合わせる場合、配列で指定

if ( is_page(array(42, 'about', 'contact')) ) {
    // いずれかのページにマッチ
}

🔸 is_page()複数ページを指定する場合は配列を使うと、コードがすっきりします。
例えば、ID、スラッグ、タイトルを組み合わせて条件を設定できます。

🔗 参考リンク

より詳しい情報を知りたい方は、WordPress公式の関数リファレンスもチェックしてみてください。

👉 is_page() – WordPress Codex (英語)

※ 英語ですが、使用例などが豊富に掲載されています。

✅ まとめ

  • is_page()は、固定ページを判定するための条件分岐タグ
  • ID、スラッグ、配列など、複数の指定方法がある
  • 応用すれば、固定ページごとに処理やデザインを変えられる
  • ループ内やタイトル指定などには注意!

以上、is_page()の基本と活用方法についてご紹介しました。

最初は少し難しく感じるかもしれませんが、慣れてくるとWordPressテーマのカスタマイズがとても柔軟になります。
ぜひ、この記事を参考に自分のサイトにも活かしてみてくださいね!

📚 あわせて読みたい