見出し画像

【ショートコード】指定日にコンテンツを表示・非表示する

「指定した開始日」にコンテンツを表示させ、「指定した終了日」にコンテンツが非表示になるWordpressの「ショートコード」を紹介!

指定日付でコンテンツを表示・非表示できる

ショートコードのPHPファイルがあるので、それを利用します。

動作確認は済みです。

Wordpressにインストールする

インストールというとプラグインのように自動でできるイメージですが、ファイルをFTPでアップしてfunctions.phpの修正が必要です。

テーマのアップデートでfunctions.phpなどのファイルが上書きされないように、子テーマを作って編集した方がいいです。

子テーマの作成方法はこちら

【1】Gitからファイルをダウンロード

ファイル名を「datecontent-shortcode.php」にして保存します。ファイルはFTPでワードプレスのテーマフォルダの中にアップします。

【2】functions.phpを修正

「functions.php」に下記のコードを追加して読み込ませます。

//
//日付で表示非表示させるショートコード
//
require_once locate_template('datecontent-shortcode.php');

ショートコードの使い方

[datecontent opendate="YYYYMMDDHHII" closedate="YYYYMMDDHHII"]
//ここに表示・非表示したいコンテンツ
[/datecontent]

「opendate」で開始日時(年月日時分)を指定します。

「closedate」で終了日時(年月日時分)を指定します。

※秒は指定できません。先頭は0埋めです(例:202105100812)。

ショートコードの開始と終了タグの間にコンテンツを書くと、開始日時になると表示され、終了日時になると非表示になります。

タグの間に書くコンテンツは、HTMLでも表示・非表示問題なく動作します。

また、非表示は「display:none」ではないので、サイトにテキストが残ることもありません。

自作しようと思っていたので助かった。

現在時刻の取得について

もしかしたら、Gitにあるコードの

$nowdate = date_i18n('U');

で、日本時間の現在時刻がうまく取得できないこともあります。

その場合は、strtotimeを使って、UNIXタイムを日本時間(+9時間)に変換してあげれば解決できます。

$nowdate = strtotime('+9hour');

この記事が気に入ったらサポートをしてみませんか?