【初心者向け】便利で面白い条件分岐タグの基本【WordPress化】

条件分岐タグ-アイキャッチ
こばゆた
こばゆた

条件分岐タグとは条件を設定することでページに応じて内容を変えることができるタグのことです。

ページごとにヘッダー画像を変えたり特定の画面のみサイドバーを出したり文言を変えたりといった使い方ができます。

きなこ
きなこ

ページによって画像が変わってるね

トップページとはメインビジュアルが変わっていることがわかります。

こばゆた
こばゆた

こんな風に使い方次第では面白い使い方ができる条件分岐タグについて解説していきます。

スポンサーリンク

1.書き方

基本的にはループに似た感じで以下のように書きます。

<?php if(条件分岐タグ('パラメータ')): ?>
  <!-- 条件を満たす時の処理 -->
<?php endif; ?>

1-1.主な条件分岐タグ

こばゆた
こばゆた

ifの( )内に入るタグです

ページごとの分岐タグ

条件分岐タグ内容
is_home()メインページが表示されている場合
is_front_page()front-pageが設定されていてfront-pageの場合
is_single()記事ページの場合
is_page()固定ページの場合
is_archive()アーカイブページの場合
is_category()カテゴリーページの場合

日付ページごとの分岐タグ

条件分岐タグ内容
is_year()年アーカイブ
is_month()月アーカイブ
is_day()日別アーカイブ
is_time()時分アーカイブ

他にもたくさんあるので興味のあるかたはこちらから見てみてください(投げやり)

https://wpdocs.osdn.jp/%E6%9D%A1%E4%BB%B6%E5%88%86%E5%B2%90%E3%82%BF%E3%82%B0

1-2.パラメータに書くもの

()の中はパラメータを書くことで記事ページや固定ページのID、タイトルやスラッグを記入し細かな使い分けをすることができます。

<?php if(is_single(id番号)): ?>
  <!-- id番号が〇〇の記事ページの時の処理 -->
<?php endif; ?>
<?php if(is_page('スラッグ名')): ?>
  <!-- スラッグが〇〇の固定ページの時の処理 -->
<?php endif; ?>

のように使い分けます。

複数のページを分岐をさせたいときは”array()”を使ってカッコ内に記事idやスラッグを入れます。

<?php if(is_single(array(1, 12, 19))): ?>
  <!-- スラッグが1, 12, 19の投稿ページの時の処理 -->
<?php endif; ?>

また以下のように複数条件を組み合わせることもできます。

<?php if(is_page(array('スラッグ名'), id番号)): ?>
  <!-- スラッグが〇〇とid番号が〇〇の固定ページの時の処理 -->
<?php endif; ?>

また条件分岐ということでJavaScriptなどの他の言語で出てきたものと同様に細かく分岐をさせることもできます。

<?php if(条件1):?>
  条件1を満たす場合
<?php elseif(条件2):?>
  条件2を満たす場合
<?php else:?>
  どちらの条件も満たさない場合
<?php endif;?>  

書く順番に気をつけないと狙った動きにならないことがあるので注意しましょう。

さらに条件分岐と言えば「かつ」、「または」というものもありました。

こちらも同様に使うことができます。

<?php if(is_home() || is_front_page()): ?>
  <!-- トップページかフロントページの時の処理 -->
<?php endif; ?>

Java Script編ではありますが以下の記事で説明しておりますので「知らないよ」という方はご一読を

最後になりましたが冒頭の動画の例はこのようにコードを書いています。

<div id="mainImg">
  <?php if(is_home() || is_front_page()): ?>
	  <img src="<?php bloginfo('template_url'); ?>/images/banners/mainImg.jpg">
  <?php elseif(is_page('recruit')): ?>
	  <img src="<?php bloginfo('template_url'); ?>/images/条件分岐タグ_1.png">
  <?php elseif(is_page('greet')): ?>
	  <img src="<?php bloginfo('template_url'); ?>/images/条件分岐タグ_2.png">
  <?php elseif(is_page('contact')): ?>
	  <img src="<?php bloginfo('template_url'); ?>/images/条件分岐タグ_3.png">
  <?php elseif(is_single()): ?>
	  <img src="<?php bloginfo('template_url'); ?>/images/条件分岐タグ_4.png">
  <?php endif; ?>
</div>

今回はページごとの条件分岐で実際にやりましたが日付ページごとの分岐タグも同じ様に使え、主にアーカイブページを作った際などに使われることが多いです。

スポンサーリンク

2.まとめ

条件分岐タグまとめ

条件を指定することでページごとに内容を変えることができるタグ

<?php if(条件分岐タグ('パラメータ')): ?>
  <!-- 条件を満たす時の処理 -->
<?php endif; ?>

複数の条件分岐のパターン

<?php if(条件1):?>
  条件1を満たす場合
<?php elseif(条件2):?>
  条件2を満たす場合
<?php else:?>
  どちらの条件も満たさない場合
<?php endif;?>  

条件に入るタグ

条件分岐タグ内容
is_home()メインページが表示されている場合
is_front_page()front-pageが設定されていてfront-pageの場合
is_single()記事ページの場合
is_page()固定ページの場合
is_archive()アーカイブページの場合
is_category()カテゴリーページの場合

細かく指定する場合

  • パラメータにはID名やスラッグ名などが入る
  • array()を使って配列にして、複数の条件を指定できる
  • 「かつ」、「または」で指定することができる
<?php if(is_single(id番号)): ?>
  <!-- id番号が〇〇の記事ページの時の処理 -->
<?php endif; ?>
<?php if(is_page(array('スラッグ名'), id番号)): ?>
  <!-- スラッグが〇〇とid番号が〇〇の固定ページの時の処理 -->
<?php endif; ?>
<?php if(is_home() || is_front_page()): ?>
  <!-- トップページかフロントページの時の処理 -->
<?php endif; ?>

コメント