【 WordPress 】テンプレートをカスタマイズする ① – 条件分岐タグ

WordPressWordPress

WordPress には様々な関数が用意されており、それらを用いることでテンプレートファイルを詳細にカスタマイズすることができます。

条件分岐タグ

トップページ

if (is_front_page() || is_home()) {
// トップページのときの処理
}

is_front_page() はトップページの表示設定に関わらず、トップページを表示しているときに true を返します。

is_home() は「投稿ページ」が設定されている場合に true を返します。

個別投稿ページ

if (is_single()) {
// 個別投稿ページの処理
}

is_single() 関数は引数を指定することができ、以下の属性について条件を絞って特定のページの投稿ページのときのみの処理を追加することができます。

  • ID
  • タイトル
  • 投稿スラッグ
  • 上記いずれかの array
is_single( '57' )
	// IDが 57 の投稿ページのとき
is_single( 'Some Title' )
	// タイトルが "Some Title" の投稿ページのとき
is_single( array('57', '495', '1729') )
	// ID が 57 or 495 or 1729 のとき

この関数では ID, タイトル及び投稿スラッグを区別しません。
引数に 57 を指定したときは、実際には ID, タイトルまたは投稿スラッグ57 のページで true を返します。

先頭固定表示の投稿

if (is_stick()) {
// 投稿編集ページで「この投稿を戦闘に固定表示」のチェックが入っている投稿ページの処理

引数に投稿 ID を指定することができ、指定した場合は該当の投稿が先頭固定表示のときに true を返します。

固定ページのとき

if (is_page()) {
// 固定ページのときの処理
}

この関数は引数を指定することができ、以下の属性について条件を絞って特定のページの固定ページのときのみの処理を追加することができます。

  • ID
  • タイトル
  • 投稿スラッグ
  • 上記いずれかの array
is_page( '57' )
	// ID が 57 の固定ページのとき
is_page( 'Some Title' )
	// タイトルが "Some Title" の固定ページのとき

特定のページテンプレートのとき

if (is_page_template( 'page_template.php' )) {
	// ページテンプレート名が page_template.php のページのとき
}

カテゴリーアーカイブページ

if (is_category()) {
	// カテゴリーアーカイブページのとき
}

この関数は引数を指定することができ、以下の属性について条件を絞って特定のカテゴリーアーカイブページときのみの処理を追加することができます。

  • カテゴリーID
  • カテゴリー名
  • カテゴリースラッグ
  • 上記いずれかの array
is_category( '28' )
	// カテゴリーID が 28 のアーカイブページのとき
is_category( 'some_category' )
	// some_category というカテゴリー名のアーカイブページのとき
is_category( array('57', '495', '1729') )
	// カテゴリーID が 57, 495, 1729 のいずれかのアーカイブページのとき

この関数では ID, タイトル及びカテゴリースラッグを区別しません。
引数に 28 を指定したときは、実際には ID, カテゴリー名またはカテゴリースラッグ28 のページで true を返します。

タグアーカイブページ

if (is_tag()) {
	// タグアーカイブページのとき
}

この関数は引数を指定することができ、以下の属性について条件を絞って特定のタグアーカイブページのときのみの処理を追加することができます。

  • ID
  • スラッグ
  • タグ名
  • 上記いずれかの array
is_tag( '57' )
	// タグ ID が 57 のアーカイブページのとき
is_tag( 'some_slug' )
	// タグスラッグが some_slug のアーカイブページのとき
is_tag( array('57', '495', '1729') )
	// タグ ID が 57, 495, 1729 のアーカイブページのとき

この関数では ID, タグ名及びスラッグを区別しません。
引数に 57 を指定したときは、実際には ID, タグ名またはスラッグ57 のページで true を返します。

タクソノミーアーカイブページ

if (is_tax()) {
	// タクソノミーアーカイブページが表示されているとき
}

作成者別アーカイブページ

if (is_author()) {
	// 作成者アーカイブページのとき
}

この関数は引数を指定することができ、以下の属性について条件を絞って特定の作成者アーカイブページのときのみの処理を追加することができます。

  • ID
  • user_nicename
  • nickname
is_author( '57' )
	// ID が 4 の作成者のアーカイブページのとき
is_author( 'some_nickname' )
	// ニックネームが `some_nickname` の作成者のアーカイブページのとき
is_author( 'some_nicename' )
	// ナイスネームが `some_nicename` の作成者のアーカイブページのとき
is_author( array(4, 'some_nickname', 'some_nicename') )
	作成者 ID, nickname が `some_nickname` または user_nicename が `some_nicename` の作成者のアーカイブページのとき

日付別アーカイブページ

if (is_date()) {
	// 日付別アーカイブページのとき
}
if (is_year()) {
	// 年別アーカイブページのとき
}
if (is_month()) {
	// 月別アーカイブページのとき
}
if (is_time()) {
	// 毎時別、毎分別、毎秒別アーカイブページのとき
}
if (is_new_day()) {
	// 投稿の日付が新しい日の場合
}

アーカイブページ

if (is_archive()) {
	// 各アーカイブページのとき
}

検索結果ページ

if (is_search()) {
	// 検索結果ページのとき
}

404 ページ

if (is_404()) {
	// 404 エラーページのとき
}

複数にわたるページ

if (is_paged()) {
	// 複数にわたるページ(アーカイブページなど)のとき
}

シングルページ (固定ページ、個別投稿ページ等)

if (is_singular()) {
	// 固定ページや個別投稿ページのとき
}

以上、テンプレートのカスタマイズで利用する条件分岐タグについてまとめました。

よく使う関数、それぞれの利用例については以下のリンクから

【 WordPress 】テンプレートをカスタマイズする ② – よく使う関数