2026年6月に「limited-display」という新しい独自タグが登場しました。
他の独自タグと違って、なにかを出力するタグではなく、コンテンツの表示期間を指定する珍しいタイプです。
limited-displayタグの使いかた
from=”2026-09-01 00:00:00″ , to=”2026-010-01 00:00:00″ のようにfrom属性で開始日時、to属性で終了日時を指定します。必ず「yyyy-mm-dd hh:mm:ss」形式で指定する必要があるので、勝手に時間を省略したりしないように注意しましょう。
from, to属性はどちらも省略可です。もし両方とも指定がなければ常に表示されるブロックになります。
<!-- サンプル -->
<{limited_display from="2026-06-01 00:00:00" to="2026-06-30 23:59:59"}>
この内容は2026年6月の間だけ表示されます。
<{/limited_display}>
limited-displayが使われそうなシーン
過去に「正月三ヶ日だけ、年始のご挨拶バナーを表示したい」というご依頼をお受けしたことがありますが、これこそ正にlimited-displayが役にたつケースです。
<{limited_display from="2027-01-01 00:00:00" to="2027-01-03 23:59:59"}>
謹賀新年
<{/limited_display}>
これまでならJavaScriptで日時判定してコンテンツ表示を切り替え,,とやっていましたがテンプレートだけで実現できます。
limited-displayの応用シーン
smartyで現在日時を取得する $smarty.now と併用すると、たとえば「毎月1日だけ表示する」のような条件にも対応できます。
コードを書くとこのような感じ。
<{assign var="now" value=$smarty.now}>
<{assign var="y" value=$now|date_format:'%Y'}>
<{assign var="m" value=$now|date_format:"%m"}>
<{limited_display from="$y-$m-01 00:00:00" to="$y-$m-01 23:59:59"}>
<div>毎月1日恒例、特別セール開催中!</div>
<{/limited_display}>
アイディア次第では使い道ありそうなタグなので、ぜひとも活用してください。
