この記事では「使用頻度が高いWordPressの条件分岐タグ」について解説していきます。WordPressではif文の条件分岐を使ってページごとにコンテンツを出しわけることができます。
- WordPressの条件分岐タグの使い方が分かる
- 使用頻度が高いWordPressの条件分岐タグが分かる
目次
よく使うWordPressの条件分岐タグ
WordPressでは、PHPのif文で条件分岐をしてコンテンツを出しわけることができます。
例えば、トップページではAというコンテンツ、固定ページのお問い合わせページではBというコンテンツを出す、のような感じです。
具体的な使用例でいうと、トップページと下層ページでヘッダーのデザインが変わる場合が該当します。そのケースではトップページではトップページ用のヘッダー、下層ページでは下層ページ用のヘッダー、のように条件分岐で出しわけることができます。
if文条件分岐の基本的な構文は以下になります。
<?php if(条件1):?>
条件1に当てはまる場合
<?php elseif(条件2):?>
条件2に当てはまる場合
<?php else:?>
条件1にも条件2にも当てはまらない場合
<?php endif;?>
条件分岐では以下のように論理演算子を使って条件分岐を指定できます。
<?php if (条件1 || 条件2) : ?>
条件1もしくは条件2に当てはまる場合
<?php endif; ?>
<?php if (条件1 && 条件2) : ?>
条件1と条件2、両方に当てはまる場合
<?php endif; ?>
<?php if (条件1 == 条件2) : ?>
条件1と条件2が等しい場合
<?php endif; ?>
<?php if (条件1 !== 条件2) : ?>
条件1と条件2が等しくない場合
<?php endif; ?>
<?php if (!条件1) : ?>
条件1ではない場合
<?php endif; ?>
if文の構文と、以下の条件分岐タグを組み合わせて、トップページなら○○、固定ページなら××、そうでないなら△△、という具合に記述することができます。
〇 条件分岐で使えるタグ
ページ名 | コード |
トップページ | is_front_page() |
投稿アーカイブ | is_home() |
個別投稿ページ | is_single() |
固定ページ | is_page() |
アーカイブページ | is_archive() |
カテゴリーアーカイブ | is_category() |
タグアーカイブ | is_tag() |
検索結果ページ | is_search() |
著者アーカイブ | is_author() |
404ページ | is_404() |
条件分岐は以下のように該当するページかそうでないかif文で判定していきます。
投稿と固定ページの違いがわからない方はこちらの記事もあわせて読んでみてください。
トップページ
トップページ(フロントページ)で処理を実行したい場合の記述は以下になります。
<?php
if (is_front_page()) {
// トップページで実行したい処理を記述
}
?>
投稿アーカイブ
投稿アーカイブページで処理を実行したい場合の記述は以下になります。
<?php
if (is_home()) {
// 投稿アーカイブで実行したい処理を記述
}
?>
フロントページと投稿アーカイブを以下のように組み合わせることもできます。
<?php if (is_front_page() || is_home()) : ?>
<!--もし「フロントページ」もしくは「ホームページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>
記事詳細ページ
記事詳細ページで処理を実行したい場合の記述は以下になります。
投稿IDやスラッグで指定することもできます。
<?php
// すべての投稿ページで実行したい処理を記述
if (is_single()) {
// 当てはまる時の処理
}
// 投稿IDが「100」のページのみ(スラッグも可)
if (is_single(100)) {
// 当てはまる時の処理
}
?>
固定ページ
固定ページで処理を実行したい場合の記述は以下になります。
投稿IDやスラッグで指定することもできます。
<?php
// すべての固定ページで実行したい処理をココに記載
if (is_page()) {
// 当てはまる時の処理
}
// 固定ページIDが「100」のページのみ(スラッグも可)
if (is_page(100)) {
// 当てはまる時の処理
}
?>
アーカイブページ
アーカイブページで処理を実行したい場合の記述は以下になります。
<?php
if (is_archive()) {
// アーカイブページで実行したい処理をココに記載
}
?>
カテゴリーページ
カテゴリーページで処理を実行したい場合の記述は以下になります。
<?php
// すべてのカテゴリーアーカイブで実行したい処理をココに記載
if (is_category()) {
// 当てはまる時の処理
}
?>
タグページ
タグページで処理を実行したい場合の記述は以下になります。
<?php
// すべてのタグアーカイブで実行したい処理をココに記載
if (is_tag()) {
// 当てはまる時の処理
}
?>
検索ページ
検索ページで処理を実行したい場合の記述は以下になります。
<?php
if (is_search()) {
// 検索結果ページで実行したい処理をココに記載
}
?>
カスタム投稿
カスタム投稿で処理を実行したい場合の記述は以下になります。
通常投稿ではis_single、カスタム投稿ではis_singularになるので注意しましょう。
<?php
// カスタム投稿「news」の個別ページを判定する場合
if (is_singular('news')) {
// 実行したい処理をココに記載
}
?>
カスタム投稿のアーカイブ
カスタム投稿のアーカイブページで処理を実行したい場合の記述は以下になります。
<?php
// カスタム投稿「news」のアーカイブページを判定する場合
if (is_post_type_archive('news')) {
// 実行したい処理をココに記載
}
?>
カスタムタクソノミー
カスタムタクソノミーページで処理を実行したい場合の記述は以下になります。
<?php
// カスタムタクソノミー「news_category」のアーカイブページを判定する場合
if (is_tax('news_category')) {
// 実行したい処理をココに記載
}
?>
日付
日付ページで処理を実行したい場合の記述は以下になります。
<?php
if (is_date()) {
// 日付アーカイブページで実行したい処理をココに記載
}
?>
複数のページ
複数の特定のページで処理を実行したい場合の記述は以下になります。
<?php if (is_date()) : ?>
<!--もし「日付アーカイブページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php elseif (is_category()) : ?>
<!--もし「カテゴリーアーカイブページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php elseif (is_tag()) : ?>
<!--もし「タグアーカイブページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php else : ?>
<!--それ以外の場合は、コンテンツを表示 or 処理-->
<?php endif; ?>
他にも以下のような記述もできます。
<?php if (is_page('contact') || is_page('privacy') || is_single() || is_404()) : ?>
<!--もし「固定ページ」のcontactかprivacy、「個別ページ」、「404ページ」のいずれかに当てはまる場合は、コンテンツを表示 or 処理-->
<?php elseif (is_front_page()) : ?>
<!--もし「フロントページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php else : ?>
<!--それ以外は、コンテンツを表示 or 処理-->
<?php endif; ?>
まとめ
よく使うWordPressの条件分岐タグについて解説しました。
さまざまなケースに応じて条件分岐を使い分けていきましょう。