if文の使い方の補足です。「WordPressユーザーのためのPHP入門」のp.53「複数の条件判定で気をつけたいこと」で書いたように、if - elseif - elseif - else のように条件判定が複数ある場合は、どこか一か所で条件が満たされたら処理終了となります。
$hour = date( 'G' );
if ( $hour < 10 ) {
echo 'おはようございます。';
} elseif ( $hour < 16 ) {
echo 'こんにちは。';
} elseif ( $hour < 20 ) {
echo 'こんばんは。';
} else {
echo 'おやすみなさい。':
}
と書けば、時間帯に応じて、「おはようございます。」「こんにちは。」「こんばんは。」「おやすみなさい。」のいずれか1つだけが表示されます。
if 文をばらばらに書いた場合との違い
if 文をばらばらに書くと、それぞれのif文が判定されます。 ↓のコードのように書いてみます。
$hour = date( 'G' );
if ( $hour < 10 ) {
echo 'おはようございます。';
}
if ( $hour < 16 ) {
echo 'こんにちは。';
}
if ( $hour < 20 ) {
echo 'こんばんは。';
}
このように書くと、もし午前6時に実行した場合は、どのif文も条件を満たすので「おはようございます。」「こんにちは。」「こんばんは。」となります。
もし午前11時に実行した場合は、2つめと3つめが条件を満たすので「こんにちは。」「こんばんは。」となります。
もし午後6時に実行した場合は、3つめが条件を満たすので「こんばんは。」となります。
また午後11時に実行した場合は、どのif文も条件を満たさないので何も出力されません。
※書籍2章では、PHPのdate()関数を使っています。WordPressに用意されているwp_date()関数との違いはこちらをごらんください。
更新日: