条件分岐タグでページを判別する方法をいくつか試してみます。
フロントページと投稿ページ
フロントページと投稿ページを判別する場合、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エラーが表示されている場合
【参考サイト】
- 条件分岐タグ – WordPress Codex 日本語版
- 関数リファレンス/is single – WordPress Codex 日本語版
- 関数リファレンス/is page – WordPress Codex 日本語版
- 関数リファレンス/is singular – WordPress Codex 日本語版
- 関数リファレンス/is post type archive – WordPress Codex 日本語版
- 関数リファレンス/is category – WordPress Codex 日本語版
- 関数リファレンス/is tax – WordPress Codex 日本語版
- 関数リファレンス/is author – WordPress Codex 日本語版
- 関数リファレンス/is date – WordPress Codex 日本語版
- 関数リファレンス/is archive – WordPress Codex 日本語版
コメントが承認されるまで時間がかかります。