WordPressの条件分岐タグまとめ(記述例あり)
こんにちはNNCの中里です。
WordPressでテーマやプラグインの開発をする際、特定のページにのみコンテンツを表示したり、条件に応じてコンテンツを制御したい時がありますよね。
今回はWordPressでサイト制作をする上で必ず必要になる条件分岐について、初学者の方に向けてまとめました。
コード記述例や具体的な仕様シチュエーションなども交えて、よく使用する条件分岐を紹介いていきますのでご覧ください!
目次
そもそも条件分岐とは
条件分岐は分かりやすい言葉で説明をすると「特定の条件に当てはまる場合のみ処理を行う」ための記述です。
例えば「トップページのヘッダーにのみあるコンテンツを表示して、それ以外のページのヘッダーにはそのコンテンツは表示しない」といった制御が簡単にできます。
条件分岐の基本文法
条件分岐は以下の文法に則って記述をします。
<?php
if (条件) {
// 条件に当てはまる場合の記述
} else {
// 条件に当てはまらない場合の記述
}
?>
複数の条件を作る場合
複数の条件を作る場合はelseifを使用します。
<?php
if (条件A) {
// 条件Aに当てはまる場合の記述
} elseif (条件B) {
// 条件Bに当てはまる場合の記述
} else {
// 条件A・Bのどちらにも当てはまらない場合の記述
}
?>
PHPコードとHTMLコードを分けて記述する場合
PHPで記述した条件の間にHTMLを記述する場合は、以下のような記述となります。
<?php if (is_home()) : ?>
<!-- ブログのホームページの場合のHTMLコード -->
<h1>Welcome to Our Blog!</h1>
<?php else : ?>
<!-- ブログのホームページ以外の場合のHTMLコード -->
<h1>Latest Posts</h1>
<?php endif; ?>
is_home()
引数: なし
説明: ブログのホームページかどうかを判定します。
記述例:
if (is_home()) {
// ブログのホームページの場合の処理
} else {
// ブログのホームページではない場合の処理
}
具体的なシチュエーション: ブログのホームページにウィジェットや特集記事を表示する場合などに使用します。
is_front_page()
引数: なし
説明: フロントページ(通常はホームページ)かどうかを判定します。
記述例:
if (is_front_page()) {
// フロントページの場合の処理
} else {
// フロントページではない場合の処理
}
具体的なシチュエーション: サイトのホームページに特別なコンテンツやスライダーを表示する場合などに使用します。
is_single()
引数: なし
説明: 単一の投稿ページかどうかを判定します。
記述例:
if (is_single()) {
// 単一の投稿ページの場合の処理
} else {
// 単一の投稿ページではない場合の処理
}
具体的なシチュエーション: 個別の記事ページに広告を表示する場合などに使用します。
is_page()
引数: (string|int|array) $page
説明: 特定の固定ページかどうかを判定します。
記述例:
if (is_page('about')) {
// 'about' ページの場合の処理
} else {
// 'about' ページ以外の場合の処理
}
具体的なシチュエーション: サイト内の特定の固定ページに異なるコンテンツやフォームを表示する場合などに使用します。
is_category()
引数: (string|int|array) $category
説明: 特定のカテゴリページかどうかを判定します。
記述例:
if (is_category('news')) {
// 'news' カテゴリページの場合の処理
} else {
// 'news' カテゴリページ以外の場合の処理
}
具体的なシチュエーション: 特定のカテゴリに関連する記事を表示する場合などに使用します。
is_tag()
引数: (string|int|array) $tag
説明: 特定のタグページかどうかを判定します。
記述例:
if (is_tag('tech')) {
// 'tech' タグページの場合の処理
} else {
// 'tech' タグページ以外の場合の処理
}
具体的なシチュエーション: 特定のタグに関連する記事を表示する場合などに使用します。
is_tax()
引数: (string|int|array) $taxonomy, (string|int|array) $term = ”
説明: 特定のタクソノミーページ(カスタム分類ページ)かどうかを判定します。
記述例:
if (is_tax('genre')) {
// 'genre' タクソノミーページの場合の処理
} else {
// 'genre' タクソノミーページ以外の場合の処理
}
具体的なシチュエーション: カスタム分類ごとに異なるコンテンツやデザインを表示する場合などに使用します。
is_archive()
引数: なし
説明: アーカイブページ(日付、カテゴリ、タグなどの一覧ページ)かどうかを判定します。
記述例:
if (is_archive()) {
// アーカイブページの場合の処理
} else {
// アーカイブページ以外の場合の処理
}
具体的なシチュエーション: 月別アーカイブやカテゴリ別アーカイブなどの特定のアーカイブページに特別なコンテンツを表示する場合などに使用します。
is_date()
引数: なし
説明: 日付アーカイブページかどうかを判定します。
記述例:
if (is_date()) {
// 日付アーカイブページの場合の処理
} else {
// 日付アーカイブページ以外の場合の処理
}
具体的なシチュエーション: 特定の日付に関連する記事を表示する場合などに使用します。
is_year()
引数: なし
説明: 年別アーカイブページかどうかを判定します。
記述例:
if (is_year()) {
// 年別アーカイブページの場合の処理
} else {
// 年別アーカイブページ以外の場合の処理
}
具体的なシチュエーション: 特定の年に公開された記事を表示する場合などに使用します。
is_month()
引数: なし
説明: 月別アーカイブページかどうかを判定します。
記述例:
if (is_month()) {
// 月別アーカイブページの場合の処理
} else {
// 月別アーカイブページ以外の場合の処理
}
具体的なシチュエーション: 特定の月に公開された記事を表示する場合などに使用します。
is_day()
引数: なし
説明: 日別アーカイブページかどうかを判定します。
記述例:
if (is_day()) {
// 日別アーカイブページの場合の処理
} else {
// 日別アーカイブページ以外の場合の処理
}
具体的なシチュエーション: 特定の日に公開された記事を表示する場合などに使用します。
引数: (int|string|array) $author = ”
説明: 特定の著者のアーカイブページかどうかを判定します。
記述例:
if (is_author(1)) {
// ユーザーIDが1の著者のアーカイブページの場合の処理
} else {
// 特定の著者のアーカイブページ以外の場合の処理
}
具体的なシチュエーション: 特定の著者が執筆した記事を表示したい場合などに使用します。
is_search()
引数: なし
説明: 検索結果ページかどうかを判定します。
記述例:
if (is_search()) {
// 検索結果ページの場合の処理
} else {
// 検索結果ページ以外の場合の処理
}
具体的なシチュエーション: 検索クエリに関連する記事を表示する場合などに使用します。
is_404()
引数: なし
説明: 404 エラーページ(ページが見つからない場合のページ)かどうかを判定します。
記述例:
if (is_404()) {
// 404 エラーページの場合の処理
} else {
// 404 エラーページ以外の場合の処理
}
具体的なシチュエーション: サイトのページが見つからない場合、カスタムした404 ページを表示する場合などに使用します。
以上となります。
条件分岐を使いこなすことで、コンテンツを思い通りに制御することができます。
WordPressを使ったサイト制作には欠かせない記述になりますので、是非活用してみてください!