\ シェア /

FacBook
Twitter
LINE
はてブ
PPocket
ZeroPlus Media > L_WordPress > Step2 > WordPressの条件分岐でページを判別しよう
WordPressの条件分岐でページを判別しよう

WordPressの条件分岐でページを判別しよう

2022/07/14

2022/07/14

WordPressでサイトを構築していく中で、設計によって「トップページで表示させたいけど、下層ページでは表示させたくない」「トップページで適用させたいスタイルとブログページで適用させたいスタイルを分けたい」などと表示したいページによって適用させたい処理を変更したいことがあります。

本記事では、表示しているページがトップページかどうか?固定ページかどうか?といった判定を評価するWordPressの関数を紹介と解説をします。

ページを判別する関数

WordPressで作成することができるテンプレートページは沢山あり、テンプレート階層の表のように多数あります。

トップページ is_front_page()、is_home()

is_front_page()

<?php is_front_page(); ?>

現在、サイトのホームページを表示中かどうかを判定(TRUE/FALSE)します。

TRUEになる条件は、WordPressの管理画面サイドバーの「設定 > 表示設定 > ホームページの表示」の項目を「最新の投稿」を選択していて、表示しているページが最新の投稿ページを表示している時、もしくは同じく「設定 > 表示設定 > ホームページの表示」の項目を「固定ページ」を選択していて「ホームページ」に指定した固定ページを現在表示中の時がTRUEになります。

is_home()

<?php is_home(); ?>

サイトの投稿ページを表示中かどうかを判定(TRUE/FALSE)します。

TRUEになる条件は、WordPressの管理画面サイドバーの「設定 > 表示設定 > ホームページの表示」の項目を「最新の投稿」を選択していて、表示しているページが最新の投稿ページを表示している時、もしくは同じく「設定 > 表示設定 > ホームページの表示」の項目を「固定ページ」を選択していて「投稿ページ」に指定した固定ページを現在表示中の時がTRUEになります。

使用例(header.phpにて)

<?php if ( is_front_page() || is_home() ) : ?>
<header>
  <h1>
    <!-- コードが入ります -->
  </h1>
</header>
<?php else: ?>
<header>
  <p>
    <!-- コードが入ります -->
  </p>
</header>
<?php endif: ?>

例えば、header.php内のタイトルを、トップページ下層ページでh1タグとpタグで出し分けたい時などに使用します。

上記例を詳しく述べると、トップページではタイトルをh1タグにしたいけど、下層ページではヘッダータイトルではなく、キービジュアルのタイトルをh1タグにしたい時です。

固定ページ is_page()

現在、サイトの固定ページを表示中かどうかを判定(TRUE/FALSE)します。

コード

<?php is_page( $page ); ?>

パラメータの$pageには、固定ページのID、タイトル、スラッグ、またはそれらの配列を指定することができます。

使用例

<?php

// 固定ページが表示されているかどうか
is_page();

// スラッグが「company」の固定ページが表示されているかどうか
is_page('company');

// タイトルが「Contact」の固定ページが表示されているかどうか
is_page('Contact');

// IDが5の固定ページが表示されているかどうか
is_page(5);

// スラッグが「company」か、タイトルが「Contact」か、IDが5の固定ページが表示されているかどうか
is_page( array( 'company', 'Contact', 5 ) );

?>

アーカイブページ is_archive()

現在、サイトのアーカイブページを表示中かどうかを判定(TRUE/FALSE)します。

コード

<?php is_archive(); ?>

WordPressのアーカイブページは、大きく分けて6種類あります。

  • カテゴリーページ
  • タグアーカイブ
  • 日付アーカイブ
  • カスタム投稿アーカイブ
  • カスタムタクソノミーアーカイブ
  • 作成者アーカイブ

is_archive()は上記に該当するページを表示中の時にTRUEを返します。

カテゴリーページ is_category()

現在、サイトのカテゴリーページを表示中かどうかを判定(TRUE/FALSE)します。

コード

<?php is_category( $category ); ?>

パラメータの$categoryには、カテゴリーID、カテゴリーのタイトル、カテゴリーのスラッグ、またはそれらの配列を指定することができます。

使用例

<?php

// カテゴリーページが表示されているかどうか
is_category();

// スラッグが「html」のカテゴリーページが表示されているかどうか
is_category( 'html' );

// 「HTML」というカテゴリー名のカテゴリーページが表示されているかどうか
is_category( 'HTML' );

// IDが4のカテゴリーページが表示されているかどうか
is_category( 4 );

// スラッグが「html」か、タイトルが「投稿タイトル」か、IDが4の固定ページが表示されているかどうか
is_category( array( 'html', 'HTML', 4 ) );

?>

404ページ is_404()

現在、サイトの404ページを表示中かどうかを判定(TRUE/FALSE)します。

コード

<?php is_404(); ?>

まとめ

今回紹介した関数は、条件分岐文と合わせて使用することが多いです。

他にもページ判定関数はありますが、使用頻度が高いもの紹介しました。

すべて覚える必要はなく、使いたい時に使用方法を確認して使用するようにすれば十分です。

\ 学んだことをSNSでシェアしよう /

この記事の執筆者

ZeroPlus Media変種部

ZeroPlus Media編集部

ZeroPlusは、「フリーランス特化型プログラミングスクール」です。ZeroPlus Mediaでは、フリーランスとして活躍する際に役立つ有益なプログラミングやWeb制作に関する情報を発信しています。

あなたの目的に合わせた2つのサービス

あなたの目的に合わせたZeroPlusの2つのサービス
基礎からフリーランスレベルまで本質的な学びを提供しています

完全無料!30日間で学びきれる
プログラミンスクールZeroPlus Gate

  • お金をかけずに、学習を進めたい
  • Webサイトを作れるようになりたい
  • メンターや講師に質問しながら学習したい

詳しくはこちらから

フリーランス特化型
プログラミングスクール ZeroPlus

  • プログラミング学習で悩んでいる
  • 仲間と一緒に学習したい
  • フリーランスとしての総合的な力を養いたい

詳しくはこちらから