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(); ?>
まとめ
今回紹介した関数は、条件分岐文と合わせて使用することが多いです。
他にもページ判定関数はありますが、使用頻度が高いものを紹介しました。
すべて覚える必要はなく、使いたい時に使用方法を確認して使用するようにすれば十分です。