ワードプレスでよく使う条件分岐タグのまとめ
2015/9/30
2021/10/5
2382 views
WP条件分岐タグまとめ
WordPressをオリジナルテーマで作成するには多くの場面で条件分岐の活用が求められます。
ワードプレスではさまざまな条件分岐用のテンプレートタグが用意されています。
以下では、よく使うものを簡単にまとめてみました。
目次
トップページの場合の条件分岐
<?php if(is_front_page()) :?>
ここに内容
<?php endif ;?>
固定ページの場合の分岐
1. 固定ページか否かの場合
<?php if(is_page()) :?>
固定ページです
<?php else :?>
固定ページではありません
<?php endif ;?>
2. 特定の固定ページの場合の分岐
<?php if(is_page('sample')) :?>
ここに内容
<?php endif ;?>
※sample部分に特定ページのスラッグを挿入します
投稿(シングル)ページの場合の分岐
1. 投稿(シングル)ページか否か
<?php if(is_single()) :?>
投稿(シングル)ページです
<?php else :?>
投稿(シングル)ページではありません
<?php endif ;?>
※カスタム投稿も含まれて分岐します
2. 投稿(シングル)ページの特定の記事の分岐
<?php if(is_single('sample')) :?>
IDが77の投稿です
<?php else :?>
IDが77以外の投稿です
<?php endif ;?>
※sample部分に投稿(シングル)ページのIDまたはタイトルまたはスラッグを挿入します
3. カスタム投稿の投稿(シングル)ページの場合の分岐
カスタム投稿の場合はis_singleではなくis_singularを使います。
<?php if ( is_singular('menu')): ?>
カスタム投稿タイプ「menu」のシングルページに表示する内容
<?php endif; ?>
※上記はカスタム投稿が「menu」の場合です
アーカイブページの場合の分岐
カテゴリーアーカイブ、タグアーカイブ、日付アーカイブページの場合の分岐です。
1. 全部のアーカイブページの場合
<?php if(is_archive()) :?>
ここに内容
<?php endif ;?>
2. カテゴリーアーカイブページの場合の分岐
<?php if(is_category()) :?>
ここに内容
<?php endif ;?>
3. タグアーカイブページの場合の分岐
<?php if(is_tag()) :?>
ここに内容
<?php endif ;?>
特定のカテゴリーの投稿場合の分岐
記事が特定のカテゴリーに属していた場合の分岐です。
<?php if(in_category('1')) :?>
ここに内容
<?php endif ;?>
※上記はカテゴリーIDが1の場合です
カスタム投稿タイプの条件分岐場合の分岐
記事がカスタム投稿の場合の分岐です。
<?php if ( get_post_type() === 'sample' ): ?>
ここに内容
<?php endif ;?>
※上記はカスタムポストスラッグがsampleの場合です
モバイル端末(スマートフォンなど)の場合の分岐
スマートフォンなどの端末での条件分岐も用意されています。
<?php if(wp_is_mobile()) :?>
ここに内容
<?php endif ;?>
ページ送りで2ページ目以降の場合の分岐
ページ送りで2ページ目以降の場合に使えます。
<?php if(is_paged()) :?>
ここに内容
<?php endif ;?>
条件分岐の応用パターン編
上記では基本的な条件を紹介してきました。
ここでは、その応用的な使い方を解説しておきます。
1. 条件分岐を反対にしたい場合
条件分岐を反対に判別させたい場合は「is_○○」の前に「!」を付けます。
<?php if(!is_front_page()) :?>
トップページ以外です
<?php endif ;?>
※上記例はトップページ以外の場合の分岐です
2. いずれかの該当する条件分岐をしたい場合
記述例その1
<?php is_single( array( 17, 19, 1) ) :?>
記事のIDが17か19か1です
<?php endif ;?>
記述例その2
<?php if(is_page('sample1') || is_page('sample2')):?>
sample1ページもしくは、sample2ページです
<?php endif ;?>
3. “それ以外で”で条件分岐をしたい場合
「elseif」や「else」を使えば”それ以外”の条件分岐がまとめて記述できます。
<?php if(is_front_page()) :?>
ここにトップページの場合の内容
<?php elseif(is_page()) :?>
ここに固定ページの場合の内容
<?php else:?>
ここにそれ以外の場合の内容
<?php endif ;?>
まとめ
以上の条件分岐を押さえておけば、ほとんどの場合で適用できるかと思います。
詳しくはWordPressCodex「条件分岐」に書かれています。
ご質問などあればお気軽にコメントください。
この記事へのコメント
- まだ書き込みはありません