新潟県妙高市を拠点とする、ホームページと広告の相談相手

MENU [+]閉じる [×]
WordPressで特定日付を境目に分岐するif文の使い方

WordPressでWeb制作をしていると、if文というものをけっこうな頻度で使用します。

「トップページの場合はこれを表示、固定ページの場合はこれ、投稿ページの場合はこれ、…」などなどですね。

今回はその中でも投稿日付が特定の日付の前か後かで分岐するif文をご紹介します(*^▽^*)

この記事の目次

特定の日付の前か後かで分岐するif文

例えば、2017年2月28日より後の日付(つまり3月1日以降)で投稿された記事のみ何か処理を追加する場合は、こちらのコードのようになります(^^)

<?php if( strtotime(get_the_date('Y-m-d')) > strtotime('2017-02-28') ): ?>
// 2017年3月1日以降の投稿の場合に表示させたい内容を記述します
<?php endif; ?>

境目にする日付や、その前か後かの違いに応じて、日付の部分や不等号の種類は任意の変更してみてください。

ちなみに[strtotime()]という関数についてですが、こちらは文字列(String)を時間(Time)に変更する関数です。

人間が視覚的に見れば[2017-02-28]とだけ見れば「あぁ、日付だな」って、データ形式を判断することもできますよね?

でも、残念ながらコンピューターにはちゃんと指定してあげないと、ときに思わぬ動きをする場合があるんです。

だから「時系列として比較ができる日付形式のデータ」に変換して、if文の分岐の条件が[true]か[false]かを判断できるようにしているんです。

極論ですが「”あ”の文字と”い”の文字は、どちらが大きいか?」って、比べられませんよね(^^;)

「”い”のほうが”あ”より100大きいです」っていうこと無いですからね…。

それと一緒で、文字列としての[2017-02-28]と[2017-03-27]は比較できません。

だから[strtotime()]という関数で処理してあげて、比較可能な日付形式のデータに変換しています(^^)

ページの先頭へ戻る

特定の日付の前ならA、後ならBの処理をする場合のif文

先ほどの応用で、if文の条件に合致しない場合にも何か処理を加えたい場合もあると思います。

その場合はこれならいけるかと思います(^^)

<?php if( strtotime(get_the_date('Y-m-d')) > strtotime('2017-02-28') ): ?>
// 2017年3月1日以降の投稿の場合に表示させたい内容を記述します
<?php else: ?>
// 2017年2月28日までの投稿の場合に表示させたい内容を記述します
<?php endif; ?>

3月1日以降なら上のほうの処理、2月28日以前なら下の方の処理が実行されるはず。

もっと枝分かれさせたい場合は[elseif(@@@@@):]を増やしてみてください。

ページの先頭へ戻る

日付が境目のif文の応用のしかた

特定の日付を境目にif文を使って分岐処理ができるのは分かりました。

じゃあ、それをどんな形で応用できるかな?となるわけです(^^;)

まず第一にありそうなのが旧サイトから持ってきたコンテンツだと明示したい場合でしょうかね(*^▽^*)

例えばですが、

「2017年2月28日までは旧サイトでコンテンツを更新していたけれど、3月1日からは新サイトで更新します、でも旧サイトのコンテンツは消さずに新サイトに持って行きたいんです」

という場合。

WordPressのインポートツール&エクスポートツールを使えば、ある程度のコンテンツなら数分程度で移行することも可能です。

ただ、旧サイトと新サイトでは事情が違うなどで、何のことわりもなければ見てくださる方が「んっ?」となってしまうかも知れません。

例えば、旧サイトと新サイトとでレイアウトが異なって、旧サイトのコンテンツではレイアウトが崩れてしまったり、崩れる可能性がある場合。

また例えば、旧サイトに載っている情報は新サイト運用後に古くなって優先度が高くなくて、それでも「最新情報ではありませんが、旧サイトではこのような情報を載せておりました」と公開したままにしておきたい場合。

そのような場合には、このような日付を境目にしたif文を使って、条件に該当する者には「この記事は旧サイトで掲載されていたものであり、現時点における正確性は保証しません」という文言を表示させるとか(^^)

もちろんHTMLタグを挿入することも可能なので、目立つ色で表示させるクラスのHTMLタグを入れておけば、赤文字などで表示させることもできるでしょうね。

また期間限定のお問い合わせフォームの設置にも活用できそうです(*^▽^*)

例えば「期間限定!応募してくれた方にはプレゼントあり」みたいなフォームを作りたいとします。

応募フォームのプログラムそのもので期限を設定できればベストですが、システムの構造上できなかったり、担当の方が分からなかったりというケースは多いもの…。

そこで、この日付を境目に分岐するif文を利用すれば、その日付を過ぎたらフォーム自体を表示できなくする処理も実現できそうです!

「このフォームのお問い合わせ期限を設定するには、このファイルのここをこのようにして、文字コードはXXXXで、FTPでアップしてくださいね」

「このファイルの[2017-02-28]の部分を、〆切の日付に変更して更新ボタンを押してください、その日付の23時59分まではフォームが動きますよ」

作業範囲であれば後者のほうが圧倒的に少ないはずっ!

あくまで「次善策」くらいのものですが、こういった使い方もあるかなと思いました。

 

皆さんも、日付を境目にしたif文を使いこなしてみてください。

何か新しい応用のしかたがあったら、気軽に教えてくださいね〜(^^)/

ページの先頭へ戻る

この記事の感想をお寄せください

[WordPressで特定日付を境目に分岐するif文の使い方]の感想を、下記のリンク先の「感想投稿フォーム」よりお気軽にお寄せください。
メールアドレスは不要です。

感想投稿フォームへ

いいね!と思っていただけたらSNSでシェアしてください♪

関連記事一覧:WordPressで特定日付を境目に分岐するif文の使い方

WordPressでホームページを制作したことのある方なら「ワードププレスのディレクトリ問題」に直面された方もいらっしゃるかと思います。 WordPres …… 続きを読む

ホームページを作る上で「titleタグ(タイトルタグ)」というものが重要な要素の一つになります。 皆さんがブログを書いている場合は、その投稿画面で入力した …… 続きを読む

シリーズ「妙高Web屋のホントは公表したくないホームページ制作」です。 皆さんはホームページを作りたいとお考えになって、制作業者さんやデザイナーさんといっ …… 続きを読む

Copyright (C) 妙高Web屋 All Rights Reserved.

ページの先頭へ