日付ごとに変わる定休日を、自動で「本日は定休日です」と表示したいと思ったことはありませんか?
曜日固定ではなく「〇月〇日は定休日」というように、カレンダーで決まっている場合でも対応できる方法をご紹介します。
この記事では、カスタムHTMLとJavaScriptを使って、定休日だけ自動でメッセージを表示する方法を解説します。
1. 想定する場面
- 営業日は不定期で、あらかじめ決まった日だけお休み
- 定休日の日だけ「本日は定休日です」とトップページなどに表示したい
- 定休日が終わったら自動でメッセージが非表示になる
2. 完成イメージ
定休日に該当する日になると、以下のようなメッセージがトップページなど任意の場所に表示されます。
本日は定休日です
日付が変わると自動的に消えるので、手動で表示・非表示を切り替える必要はありません。
3. 実装方法
プラグインをさがしてみましたが、プラグインは良い物が見つかりませんでした。
以下の方法がシンプルでやりやすかったので紹介します。
HTML+CSS+JavaScriptを設置
WordPressのブロックエディターの「カスタムHTML」ブロックなどに、以下のコードをそのまま貼り付けるだけで動作します。
「任意の日付」のところに休みの日を登録してください。いくつでもOKです。
<!-- 定休日メッセージ -->
<div id="yasumi-message">
本日は定休日です
</div>
<style>
#yasumi-message {
display: none;
color: red;
font-weight: bold;
font-size: 30px;
text-align: center;
}
</style>
<script>
document.addEventListener("DOMContentLoaded", function () {
const holidays = [
"任意の日付",
"任意の日付",
"任意の日付",
"任意の日付"
];
const today = new Date();
today.setHours(today.getHours() + 9); // 日本時間に補正
const todayStr = today.toISOString().split("T")[0];
const msg = document.getElementById("yasumi-message");
if (holidays.includes(todayStr) && msg) {
msg.style.display = "block";
}
});
</script>
4. ポイント解説
holidays
という配列に定休日の日付(YYYY-MM-DD
形式)を入れます- JavaScript で「今日の日付」を日本時間で取得し、定休日に含まれていればメッセージを表示します
- 日付が切り替わると自動で表示・非表示が切り替わるので手間いらず
5. 注意点
- JavaScriptが無効なブラウザでは動作しません(ほぼ影響なし)
- WordPressのテーマやプラグインによっては
<script>
タグが無効化される場合があります- その場合は「フッター用のJavaScript挿入」機能などを使ってください
6. 応用アイデア
- 表示メッセージを「定休日につき、お問い合わせは翌営業日以降に対応いたします」などに変更
- CSSで目立つデザインにする(背景色やアニメーションなど)
- 定休日リストをJSONファイルで外部管理することも可能
まとめ
定休日だけ自動でメッセージを出したいなら、JavaScriptで簡単に実現できます。
「今日は定休日なのに営業中っぽく見えてしまう」などのリスクを減らすことができ、訪問者にも親切です。
技術的に難しそうに見えますが、一度コピペすればあとは日付を追加していくだけなので、誰でも管理しやすい仕組みです。