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

※Web開発
WordPressの条件分岐でページを判別しよう | ZeroPlus Media
WordPressでサイトを構築していく中で、設計によって「トップページで表示させたいけど、下層ページでは表示させたくない」などと表示したいページによって適用させたい処理を変更したいことがあります。 本記事では、表示しているページがトップペ...
WordPressの条件分岐でページを判別しよう

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

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

この記事で身につく内容

  • プログラミング言語PHPを使って個別ページを判別する方法

案件が取れなくて悩んでいるあなたへ

プログラミング案件獲得のために必要なスキルは、単に技術力だけではありません。営業力、コミュニケーション力、人脈などの幅広いスキルや要素が求められてきます。

営業からライティング、SEOまで学べるフリーランス特化型プログラミングスクールZeroPlusで、フリーランスエンジニアに必要なすべてを手に入れませんか?

  • またゼロからやり直さないといけないの?
  • 本当にフリーランスになれるの?

といった不安にも、超フレンドリーな相談員が親切に相談にのります。スクール以外のご質問もOK!

\お申し込みは30秒で終わります。/

まずは無料で相談してみる

新しい一歩を、今踏み出してみませんか?

目次

ページを判別する関数

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(); ?>

まとめ

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

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

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

タイトルとURLをコピーしました