![見出し画像](https://assets.st-note.com/production/uploads/images/52108104/rectangle_large_type_2_201c85d18b0a3f83a015b88af8ea7088.png?width=800)
【ショートコード】指定日にコンテンツを表示・非表示する
「指定した開始日」にコンテンツを表示させ、「指定した終了日」にコンテンツが非表示になる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');
この記事が気に入ったらサポートをしてみませんか?