ifを利用した条件判定

if文 単純な条件判定

  • 特定の場合のみ実行したい時に記述
  • 条件を設定し、条件を満たす場合に処理を実行する



if(条件){
 条件を満たす場合の処理
}


《例:午前10時前なら処理を実行》

  • 「date_default_timezone_set」は、php.iniで変更してある場合は、記述は不要
<?php get_header(); ?>
<?php date_default_timezone_set( 'Asia/Tokyo' ); //タイムゾーンを東京に設定 ?>
<?php

$hour = date('G');
if ( $hour < 10 ) {
  echo 'おはようございます。';
}

?>
<?php get_footer(); ?>
  • 「$hour = date('G')」は、現在の時刻を取得
  • 「$hour < 10」は、現在時刻 $hour が 10 より小さい場合
  • 「echo 'おはようございます。'」は、「おはようございます。」と表示
  • 10時以降は、何も表示しない
if文を使うメリット
  1. ファイルが1つですむ
  2. 10時ちょうどに自動的に表示を変更できる
  3. 一度作業すればよい(毎日作業しなくてもよい)
複雑な条件分岐 if〜else文


if(条件1){
 条件1を満たす場合の処理
} elseif(条件2){
 条件1を満たさないで、条件2を満たす場合の処理
} elseif(条件3){
 条件1と条件2を満たさないで、条件3を満たす場合の処理
} else {
 どの条件も満たさなかった場合の処理
}

  • elseは、それ以外すべての意味で1回だけ書くことができます
<?php get_header(); ?>
<?php date_default_timezone_set( 'Asia/Tokyo' ); //タイムゾーンを東京に設定 ?>

<?php

$hour = date('G');
if ( $hour < 10 ) {
  echo 'おはようございます。';
} elseif ( $hour < 16 ) {
  echo 'こんにちは。';
} elseif ( $hour < 20 ) {
  echo 'こんばんは。';
} else {
  echo 'おやすみなさい。';
}

?>
<?php get_footer(); ?>


複数の条件で気をつけたいこと

  • 条件分岐は上から順に判定を行い、条件を満たしたらそれ以降の elseif や else は判定されないということ
「:」コロンを使った if文の表記方法
  • 構文途中の区切りは「: コロン」、最後の区切りは「endif; セミコロン」を記述します



if(条件1):
 条件1を満たす場合の処理
elseif(条件2):
 条件1を満たさないで、条件2を満たす場合の処理
else :
 どの条件も満たさなかった場合の処理
endif;

<?php get_header(); ?>
<?php date_default_timezone_set( 'Asia/Tokyo' ); //タイムゾーンを東京に設定 ?>
<?php

$hour = date('G');
if ( $hour < 10 ) :
    echo 'おはようございます。';
elseif ( $hour < 16 ) :
    echo 'こんにちは。';
elseif ( $hour < 20 ) :
    echo 'こんばんは。';
else :
    echo 'おやすみなさい。';
endif;

?>
<?php get_footer(); ?>

WordPressでのif文の使用例

  • index.phpまたはcontent.phpなどに記述
<?php get_header(); ?>

<?php while ( have_posts() ) : the_post();  //ループの開始 ?>

  <?php if ( is_single() ) : ?>
    <h1 class="entry-title"><?php the_title(); ?></h1>
  <?php else : ?>
    <h1 class="entry-title">
    <a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a>
    </h1>
  <?php endif; // is_single() ?>

  <?php the_content()  //記事本文を表示 ?>
<?php endwhile;  //ループの終了 ?>
<?php get_footer(); ?>
  • 「is_single()」は、「個別投稿かそうでないか」を判定する
  • 個別投稿の場合は、条件を満たしたと判断されます
  • 「the_title()」は「投稿のタイトル」、「the_permalink()」は「投稿パーマリンク」を表示します
  • この条件により個別投稿の場合は、最初の処理である以下が実行されます
<h1 class="entry-title"><?php the_title(); ?></h1>


個別投稿でない場合は、elseの処理を実行します。

<h1 class="entry-title">
<a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a>
</h1>
  • 個別投稿でない場合つまりアーカイブページなどの場合は、投稿へのリンクを表示することでタイトルをクリックして、個別投稿ページへ移動できます
  • 個別投稿の場合は、すでに見ているページなのでリンクを付けなくてもよいという処理です