2016年3月12日(土)に開催されたJAWS DAYS 2016
一昨年からJAWS-UGに入ってみたり、去年はサイト運営や当日スタッフとして携わり、今年も公式サイトの運営(保守)というか広報オーガナイザー的な感じで携わりました。
イベント当日は参加できませんでしが、公式サイトの裏側的なものについて書いてみようと思います。

スポンサーサイト

サーバー:網元(AMIMOTO)

サーバーはJAWS-UGですし、AWS使います。WordPressでの運用ということもあり、ゼロからEC2インスタンスにいろいろ組み込むのではなく網元(AMIMOTO)を使っています。

使っているのは「WordPress powered by AMIMOTO (HVM)」。東京リージョンに t2.micro で起動中です。
ちなみにイベント当日だけで20,000PV弱(多分19,000ぐらい)はアクセスがあったようですが、t2.micro で十分だった模様です。

Gitの設定

JAWS-UGでは GitHubにスペースを持っており、去年ぐらいからイベントの公式サイトのテーマや素材などが公開されています。
ここにJAWS DAYS 2016 のリポジトリもあるので、ここをリモートリポジトリとしてローカルで開発したテーマやプラグインを公式サイトに展開していけるよう、サーバーでも git の設定を行います。
ちなみに、WordPressのコアファイルはサーバー構築時に最新版を使いたいため、またメディアファイルも同期する必要が無いので、テーマやプラグインのみをコミットしています。

サイトの構造(投稿タイプとカスタムフィールド)

通常のお知らせの他に「スピーカー(登壇者プロフィール)」と「サポーター」のカスタム投稿タイプを用意しています。
これらの投稿タイプではカスタムフィールドの入力欄も実装します。これはWordPressにそんなに詳しくないあるいはビジュアルエディタでレイアウトが難しいという人が広報担当になっても更新しやすくするためです。

screencapture-jawsdays2016-jaws-ug-jp-wp-admin-post-new-php-1458797208060

WordPressではカスタムフィールドがデフォルトで検索対象外になりますが、最終的に静的サイトにするために検索自体を実装していないので、入力のしやすさを優先しています。

また、カスタムフィールドはAdvanced Custom Fieldsを使っていますが、項目自体はプラグインとして書き出しています。
カスタム投稿タイプも自作のプラグインとして実装してます。
これは、JAWS-UGで別のイベントサイトを作る際にダッシュボードから設定したまま=データベース上に保存していると、静的サイト書き出し後に参照できないため、テーマやプラグインを有効化しただけではすぐに使えないからです。
この辺はGitHubにおいてるソースを参照してください。

サイトの見栄え(テーマ)

デザインについては毎年大きな変更はないため、PHPやCSS、JSの調整がメインとなります。
最終的には静的サイトにするのでレスポンシブデザインで組みます。
タイムテーブル部分は jQueryプラグインの「FooTable」を組み込んでいます。WordPressのプラグインもありますが、タイムテーブルでしか使わないためこちらはインストールしていません。
テーマの方は投稿タイプの設定など機能部分に関するものは(なるべく)入れず、プラグインで実装した機能の出力をメインに考えています。
同様にメニューや細々としてた名称(テキスト)の編集もテーマを直すのではなく、カスタムメニューやカスタムフィールドでダッシュボードから変更できるようにしています。(ダッシュボードのテーマ編集で直す、という話ではない)
こちらもGItHubで公開しています。

運用フェーズ

運用フェーズに入ると私の手からは少し離れます。
サイトの更新(リリース文の作成や公開、情報の入力)は広報担当のスタッフにお任せしてしまいます。また、公式サイトだけではなくSNS担当の方もいますので、SNSに投下するのをお願いしたりです。
(JAWS-UGではSlack・バックログを使っているのでそこで課題を作ってすすめました)
私は実行委員長のアカツカさんと「どの情報を、どのタイミングで公開するか」や各トラックオーナーさん経由で登壇者にプロフィールを依頼したり、サポーターの申し込みから公開までの流れの作成、とほとんどWordPressには触りません。

WordPressのユーザー権限で管理者グループだと変更してほしくない(触ってほしくない)メニューも出てくるので、WP Total Hacks で実装できるWebmaster権限を広報スタッフに割り当てています。(編集者だとカスタムメニューを変更できないため)
ただし、Jetpackのパブリサイズ共有周りでちょっと問題が起きたので、次回以降はこの辺りの設定は変えるかもしれません。

静的サイトに書き出し(永代供養)

執筆時点ではEC2インスタンスで稼働していますが、イベント終了後2週間ほど(月末)をめどでStaticPressで静的サイトに書き出し(通称「永代供養」)、S3ホスティングに変更します。

実際には先の作業ですが、バックアップ(Snapshot)をとったうえでDBとメディアは別に保存しておくと思います(来年度ローカル環境で構築するときに静的サイトに書き出したデータだけだと時間がかかるため)

来年の課題

担当スタッフで反省会をやる予定なのですが、今のところ思いつく項目として、登壇者(セッション)の見せ方・管理が上がっています。
現状、登壇者ベースで作成していたのですが、パネルディスカッションのような複数登壇者があったりした場合に運用しづらい部分がありました。
次回以降、セッションベースに変更できればなぁと思っています。


昨年から 巻き込まれ気味に 公式サイトに携わっていますが、業務が忙しいこともあり「来年楽できるように」と思いながらコードを書いています。
当日スタッフで参加してない人間の JAWS DAYS 2016 感想文ですが、こんなブログが有っても良いのではないでしょうか。

なお、JAWS-UGで次の大きなイベント、今年のJAWS FESTAは名古屋だそうです。
Facebookで情報が出るようなのでフォーローしてみてはいかがでしょうか?

https://www.facebook.com/JawsFesta/