WordPressの条件分岐でページを判別する

条件分岐タグでページを判別する方法をいくつか試してみます。

フロントページと投稿ページ

フロントページと投稿ページを判別する場合、is_front_page()やis_home()を使用します。

設定 > 表示設定 の「フロントページの表示」が「最新の投稿」になっている場合、フロントページではis_front_page()・is_home()の両方ともtrueになります。
「固定ページ」を選択している場合、フロントページではis_front_page()が、投稿ページではis_home()がtrueになります。

それぞれを判別する場合、以下のようになります。

PHP

if ( is_front_page() && is_home() ) {
	// デフォルトのフロントページ
} elseif ( is_front_page() ) {
	// 固定ペーシを使ったフロントページ
} elseif ( is_home() ) {
	// 固定ペーシを使った投稿ページ
} else {
	// それ以外
}

 

シングルページ

is_single($post)

個別の投稿ページ(固定ページや添付ファイルを除く)が表示されている場合にtrueを返します。
引数には記事IDやスラッグ、タイトル名、それらの配列を指定できます。

PHP

is_single(); // 個別投稿ページを表示中の場合
is_single( '16' ); // 記事IDが16の場合
is_single( '商品A' ); // タイトル名が商品Aの場合
is_single( 'itema' ); // スラッグがitemaの場合
is_single( array( '16', '商品A' ) ); // 記事IDが16かタイトル名が商品Aの場合

is_page($page)

固定ページが表示されている場合にtrueを返します。
引数には固定ページのIDやスラッグ、タイトル名、それらの配列を指定できます。

PHP

is_page(); // 固定ページを表示中の場合
is_page( '7' ); // 固定ページのIDが7の場合
is_page( '会社概要' ); // タイトル名が会社概要の場合
is_page( 'company' ); // スラッグがcompanyの場合
is_page( array( '7', '会社概要' ) ); // 固定ページのIDが7かタイトル名が会社概要の場合
// 固定ページが子ページかどうか判別したい場合
if ( is_page() && $post->post_parent > 0 ) {
	// 
}

is_attachment()

投稿ページまたは固定ページの添付ファイルが表示されている場合にtrueを返します。

PHP

is_attachment(); // 添付ファイルが表示されている場合

is_singular($post_types)

is_single()、is_page()、is_attachment()のいずれかがtrueである場合にtrueを返します。
引数には投稿タイプ(配列の場合は複数)を指定できます。

PHP

is_singular(); // 個別の投稿を表示中の場合
is_singular( 'post' ); // デフォルトの投稿タイプを表示中の場合
is_singular( 'news' ); // カスタム投稿タイプ(news)を表示中の場合
is_singular( array( 'news', 'campaign' ) ); // カスタム投稿タイプのnewsまたはcampaignを表示中の場合

 

アーカイブページ

is_post_type_archive($post_types)

引数の投稿タイプのアーカイブページの場合にtrueを返します。
引数がない場合、カスタム投稿タイプのアーカイブの場合にtrueを返します。

PHP

is_post_type_archive(); // カスタム投稿タイプのアーカイブの場合
is_post_type_archive( 'news' ); // カスタム投稿タイプ(news)のアーカイブの場合

is_category($category)

カテゴリーのアーカイブページが表示されている場合にtrueを返します。
引数にはカテゴリーIDやスラッグ、カテゴリー名、それらの配列を指定できます。

PHP

is_category(); // カテゴリーのアーカイブページが表示中の場合
is_category( '5' ); // カテゴリーIDが5の場合
is_category( 'カテゴリーA' ); // カテゴリー名がカテゴリーAの場合
is_category( 'cat-a' ); // スラッグがcat-aの場合
is_category( array( '5', 'カテゴリーA' ) ); // カテゴリーIDが5かカテゴリー名がカテゴリーAの場合

is_tag($tag)

タグのアーカイブページが表示されている場合にtrueを返します。
引数にはタグIDやスラッグ、タグ名、それらの配列を指定できます。

PHP

is_tag(); // タグのアーカイブページが表示中の場合
is_tag( '12' ); // タグIDが12の場合
is_tag( 'タグA' ); // タグ名がタグAの場合
is_tag( 'cat-a' ); // スラッグがcat-aの場合
is_tag( array( '12', 'タグA' ) ); // タグIDが12かタグ名がタグAの場合

is_tax($taxonomy, $term)

タクソノミーのアーカイブページが表示されている場合にtrueを返します。
第一引数にはタクソノミーのスラッグまたは配列、第二引数にはタームIDやスラッグ、ターム名、それらの配列を指定できます。

PHP

is_tax(); // タクソノミーのアーカイブページが表示中の場合
is_tax( 'news_tag' ); // タクソノミーのスラッグがnews_tagの場合
is_tax( 'news_tag', '5' ); // タクソノミーのスラッグがnews_tagで、タームIDが5の場合
is_tax( 'news_tag', 'news-tag-a' ); // タクソノミーのスラッグがnews_tagで、タームのスラッグがnews-tag-aの場合

is_author($author)

投稿者のアーカイブページが表示されている場合にtreuを返します。
引数には投稿者IDや投稿者名を指定できます。

PHP

is_author(); // 投稿者のアーカイブページが表示されている場合
is_author( '2' ); // 投稿者IDが2の場合
is_author( 'non' ); // 投稿者名がnonの場合

is_year()

年別アーカイブページが表示されている場合にtrueを返します。

PHP

is_year(); // 年別アーカイブページが表示されている場合

is_month()

月別アーカイブページが表示されている場合にtrueを返します。

PHP

is_month(); // 月別アーカイブページが表示されている場合

is_date()

年別や月別など、日付に関するアーカイブページが表示されている場合にtrueを返します。

PHP

is_date(); // 日付に関するアーカイブページが表示されている場合

is_archive()

各アーカイブページが表示されている場合にtrueを返します。
アーカイブページにはカテゴリー、タグ、作成者、日付別、カスタム投稿タイプのアーカイブ、タクソノミー項目が対象になります。

PHP

is_archive() // アーカイブページが表示されている場合

 

検索結果と404ページ

is_search()

検索結果のページが表示されている場合にtrueを返します。

PHP

is_search() // 検索結果のページが表示されている場合

is_404()

404エラーが表示されている場合にtrueを返します。

PHP

is_404() // 404エラーが表示されている場合

 

【参考サイト】

 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年12月
1234567
891011121314
15161718192021
22232425262728
293031