NOTE

【WordPress】よく使う条件分岐テンプレートタグまとめ

2015/9/30

2021/2/28

1288 view

  【WordPress】よく使う条件分岐テンプレートタグまとめ

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「条件分岐」に書かれています。
ご質問などあればお気軽にコメントください。

WordPressCodex「条件分岐」

この記事へのコメント

  • まだ書き込みはありません

コメントを残す



関連記事

ページの先頭に戻る