目次
この記事はSnow Monkey / unitone Advent Calendar 2025の22日目の記事です。
街歩きとゲームを掛け合わせた新感覚スポーツイベント「まちあるきミッケ」。2023年より香川県内で複数の大会が開催されており、greenciderではイベント立ち上げ段階からデザインやWEBサイト制作を担当しています。
本記事では、公式サイトの技術構成と運用自動化の仕組みについて紹介します。
【公式】まちあるきミッケ | 新感覚こどもと大人の社会科見学
まちあるき×ロゲイニングの新感覚スポーツ「まちあるきミッケ」の公式サイトです。大会情報、エントリー方法、よくある質問、開催報告などを掲載しています。
machiarukimikke.com
プロジェクトの詳細や制作背景については、以下の制作実績ページもご覧ください。
立ち上げから顧客対応まで、地方創生イベントの広報コミュニケーションをトータルデザイン|greencider(グリーンサイダー)
街歩きとゲームを掛け合わせた新感覚スポーツイベント「まちあるきミッケ」。立ち上げ段階からデザイン、WEBサイト制作・運用などをgreenciderが担当しました。
greencd.jp
プロジェクトの背景
まちあるきミッケは、開催エリア内のチェックポイントを巡ってポイントを獲得するイベントです。高松や坂出、丸亀本島など香川県内の複数エリアで開催されています。
新たに制作するWEBサイトには以下の役割が求められました。
- イベントの魅力や参加方法をわかりやすく伝える
- 開催中の大会情報を一覧で表示し、エントリーへ誘導する
- 大会情報を運営スタッフが簡単に更新できる
運用上の課題
このプロジェクトではイベント運営特有の課題がありました。
頻繁な大会追加とステータス管理
まちあるきミッケは年間を通じて複数の大会が開催されます。各大会には「受付中」「受付終了」といったステータスがあり、エントリー締切を過ぎたら適切に切り替える必要があります。
大会数が増えるほどステータス管理の手間も増え、更新漏れのリスクも高まります。
非技術者による運用
サイトの更新は運営スタッフが行います。技術的な知識がなくても直感的に操作できるCMSが必要でした。
ヒューマンエラーの防止
大会情報には開催日やエントリー締切など複数の日付項目があります。「締切が開催日より後になっている」といった論理的に矛盾したデータが登録されると、参加者に誤った情報を伝えてしまいます。こういったミスを入力時点で防ぐ仕組みが求められました。
技術スタックの選定
WordPress + Snow Monkeyを選んだ理由
上記の課題を踏まえ、CMSにはWordPress、テーマにはSnow Monkeyを採用しました。
WordPressを選んだ理由は以下の通りです。
- 非技術者でも扱いやすい管理画面
- カスタム投稿タイプやカスタムフィールドによる柔軟なデータ管理
- cronによる定期処理の実行基盤
WordPressテーマは多数ありますが、その中でSnow Monkeyを選んだ理由は以下の通りです。
- ブロックエディタに最適化された設計
- 豊富なブロックパターンとカスタマイズ性
- My Snow Monkeyプラグインによる拡張のしやすさ
My Snow Monkeyプラグイン形式でのカスタマイズ
Snow Monkeyには、テーマ本体を編集せずにカスタマイズを行うための仕組みとしてMy Snow Monkeyプラグインが用意されています。
このプラグイン形式には以下のメリットがあります。
- テーマ更新の影響を受けない:カスタマイズコードはテーマと分離されているため、テーマをアップデートしてもカスタマイズは維持される
- バージョン管理しやすい:プラグインディレクトリのみをGit管理すればよい
- 再利用しやすい:他のSnow Monkeyプロジェクトにも流用できる
今回のプロジェクトでは、このMy Snow Monkeyプラグイン内に大会情報の管理機能や自動化の仕組みを実装しました。
運用自動化のための技術的工夫
運用負荷を下げるために、以下の自動化を実装しました。
イベントステータスの自動更新とSlack通知
大会情報はカスタム投稿タイプ、ステータス(受付中・受付終了)はカスタムタクソノミーで管理しています。エントリー締切を過ぎたら、このステータスを自動的に「受付終了」に変更する仕組みを構築しました。
処理の流れ
- cronで毎日決まった時刻に以下の処理を実行
- 「受付中」の大会の中から、最終締切を過ぎたものを抽出
- 該当する大会のステータスを「受付終了」に変更し、タイトルに受付終了を示す接頭辞を付与
- 処理結果をSlackに通知
Slack通知では、更新された大会の一覧をリンク付きで送信します。担当者へのメンションも含めることで、確実に情報が届くようにしています。
処理のログはファイルに記録し、90日経過したものは自動削除されます。エラー発生時にはメールでも通知されるため、問題があればすぐに気づけます。
この仕組みにより、ステータスの更新漏れを防げるようになりました。
ACFバリデーションによる入力ミス防止
大会情報のカスタムフィールドにはAdvanced Custom Fields(ACF)を使用しています。
ACFのバリデーション機能を活用し、以下のチェックを実装しました。
- 開催日2は開催日1より後であること(2日間開催の場合)
- 最終締切は開催日1より前であること
これらの条件を満たさない場合、投稿を保存できません。入力時点でエラーを検出することで、論理的に矛盾したデータの登録を防いでいます。
ACFのバリデーションの具体的な実装方法は以下の記事で紹介しています。
Advanced Custom Fieldsにカスタムバリデーションを追加する|greencider(グリーンサイダー)
ACFに独自の入力チェックを追加する方法を解説。acf/validate_valueフィルターの基本から、日付の前後関係を確認する応用例まで紹介します。
greencd.jp
また、投稿保存時には締切とステータスの整合性もチェックしています。締切を過ぎているのにステータスが「受付中」のままであれば、自動的に「受付終了」に変更されます。
保存時に値を自動更新する方法は以下の記事で紹介しています。
Advanced Custom Fieldsの更新時に投稿情報を自動更新する|greencider(グリーンサイダー)
Advanced Custom Fieldsのacf/save_postアクションで、投稿保存時にタイトルやタクソノミーを自動更新する方法を解説します。
greencd.jp
動的フッターCTAによる導線の自動化
サイトのフッターには、現在エントリー受付中の大会へ誘導するCTAを表示しています。
このCTAは静的なリンクではなく、最新の受付中大会を自動取得して表示する仕組みにしました。
- テキスト:「『
エリア名エリア』エントリー締切締切日時」 - ボタンリンク:該当大会の詳細ページ
新しい大会が公開されればCTAも自動的に最新の情報に切り替わります。運営スタッフがCTAを手動で更新する必要はありません。
開発環境
開発環境には、以前紹介したMy Snow Monkeyテンプレートをベースに構築しています。
- PostCSSによるCSSのビルド
- コードの自動リント・フォーマット
- ライブリロード機能付きのWordPressローカル環境
- コミット前のファイルのリント、フォーマット、エラーの検知
- GitHub ActionsによるCI/CD
- Renovateによる依存パッケージの更新
テンプレートの詳細は以下の記事をご覧ください。
Snow Monkey開発を快適にするMy Snow Monkeyテンプレートの紹介|greencider(グリーンサイダー)
リンター・フォーマッター・ライブリロード・CI/CDを備えたMy Snow Monkeyテンプレートを紹介。開発環境を整備し、快適なSnow Monkey開発を実現します。
greencd.jp
まとめ
本記事では、まちあるきミッケの公式サイトにおける技術構成と運用自動化の仕組みを紹介しました。
WordPress + Snow Monkeyの組み合わせで非技術者でも扱いやすいCMSを提供しつつ、My Snow Monkeyプラグインで柔軟なカスタマイズを実現しています。特にイベントステータスの自動更新とSlack通知の仕組みは、運用負荷の軽減に大きく貢献しました。
イベントサイトの構築を検討している方の参考になれば幸いです。
私たちgreenciderは「地域のクリエイティブ・パートナー」です。
スタッフそれぞれの専門スキルや興味関心を生かして、地域課題をクリエイティブの力で解決しています。
制作に関するご相談はお問い合わせフォームよりお気軽にご連絡ください。
また、私たちgreenciderとともに、クリエイティブを通して地域課題や地方創生に取り組みたい方も、ぜひお問い合わせフォームよりご連絡ください。
お問い合わせ|greencider(グリーンサイダー)
制作のご相談や見積もり依頼、その他お問い合わせはお問い合わせフォームよりお気軽にご連絡ください。
greencd.jp