Snow Monkey とは

Snow Monkey の特徴

Snow Monkey は有料で販売している WordPress テーマです。

このサイトで提供しているサブスクリプションサービスの名前でもあります。WordPress テーマとしての Snow Monkey は、サブスクリプション契約された方に提供されます。

Snow Monkey には2つの大きな特徴があります。

  1. web サイト構築でよく使う機能が最初から用意されているのでサイトを素早く立ち上げられる
  2. WordPress のテンプレート機能を拡張しており、高度なカスタマイズが可能

web サイト構築でよく使う機能が最初から用意されているのでサイトを素早く立ち上げられる

ヘッダーのレイアウト・ページのレイアウト(サイドバーのありなしやフル幅・スリム幅)などの web サイトの大枠の設定や、シェアボタン・OGP などの SEO/SNS の基本的な設定は最初から用意されているので、コーディングやプラグインの追加は不要でカスタマイザーから選択するだけで設定できます。

また、Snow Monkey Blocks プラグインと組み合わせることで web ページを構成する一般的なパーツ(ブロック)を多数追加することができ、ブロックエディターを利用して簡単に、そして素早くページを制作することが可能です。デザインされたパーツの組み合わせ(ブロックパターン)も多数用意しているので、それらを並べるだけでページをつくることができます。

web サイト制作の現場で利用されることを想定した機能や仕組みも多数備えています。

  • デフォルトの装飾はパーツがパーツとして機能する最低限のものにしてカスタマイズしやすいように。
  • デザインは CSS でカスタマイズすることを前提として設計(必要以上に強い詳細度にしない、コンポーネントを意識した設計)。

WordPress のテンプレート機能を拡張しており、高度なカスタマイズが可能

配布テーマをつかった WordPress のサイト構築でテーマの HTML を書き換えたい場合は子テーマを使ったカスタマイズが一般的です。

子テーマは親テーマのテンプレートを上書きするという超強力な機能であり、これはお手軽である反面、古いテンプレートをコピーしたままになっていると親テーマをアップデートしても子テーマに新機能が反映されない、脆弱性が残ったままになる、デザインが崩れる、などの問題が起こる可能性があります。

これらの問題を解決するには下記の対策が考えられます。

  • テンプレートを小さく分割し、必要最小限な部分だけを上書きできるようにする。
  • テンプレートを上書きせずに「書き換える」仕組みを用意し、必要最小限な部分だけを書き換えられるようにする。
  • 基本的なバリエーションについては React の props のように設定値を持たせ、その値をカスタマイズすることで「上書き」や「書き換え」をせずにテンプレートの変更ができるようにする。

これらを実現するために、Snow Monkey では下記の仕組みや機能を用意しています。

  • コンポーネントを意識したテンプレートパーツの設計。
  • WordPress のテーマで発生しがちなレイアウトまわりでのコードの重複をさけるため、レイアウト・ビューコントローラー機能を追加。柔軟なレイアウト、ビューの差し替えが可能。
  • テンプレートを書き換えるためのフィルターフック、テンプレートの引数をカスタマイズするためのフィルターフック、プラグインからでも子テーマのような上書きを実現させるフィルターフックなど、子テーマ開発の問題点を解決するための仕組みを搭載。
  • デバッグ用のコメントタグ出力、テンプレートの上書き警告など、開発者向けの機能も搭載。

Snow Monkey で解決したい課題

僕はもともとずっと web サイト制作の受託制作をおこなっていました。フリーランスになってからは受託でサイト制作に使用する WordPress のオリジナルテーマやオリジナルプラグインの開発をおこなってきました。

その中で「これはどんなサイト制作のときでもまず絶対につくらないといけないもの」や「これはだいたいどのサイトでも必要なコンポーネント」のようなものがあり、それを毎回毎回用意するのがめんどくさいなと思っていました。それを解決するために、Snow Monkey 以前にもいくつかの WordPress テーマや CSS フレームワークを開発したりしていたのですが、結局のところ web サイトは web ページの集合体なわけで、WordPress においてはその web ページの中身は wysiwyg(クラシックエディター)で制作する必要があり、それは開発者が完全にコントロールするのが大変困難なものでした。

それが、ブロックエディター(Gutenberg)の登場で大きく変わりました。「ブロック」という HTML の塊を開発者が完全にコントロールして配置できるようになり、これまで外枠しか(完全には)コントロールできなかった WordPress のサイト制作が web ページの中身についてもコントロールできるようになりました。

この変化は単純に「エディターの見た目が変わってつくりやすくなった」という変化以上の革新的なものだと僕は感じています。クラシックエディターでレイアウトされた web ページをつくろうとすると、複数のショートコードを組み合わせたりテキストモードで HTML を記述するしかありませんでした。ショートコードも結局は HTML を記述するのと本質的には同じであり、コードを書くということになれていない方にとっては大変むずかしいものでした。これがブロックになり、全て画面上の操作だけでレイアウトされた web ページがつくれるようになりました。web ページを全然つくったことがない人でも、画面上でブロックパターン(ブロックが組み合わされてレイアウトされたもの)をクリックしていくだけでそれなりのページがつくれるようになったのです。

ただし、WordPress に最初から用意されているブロックやブロックパターンは基本的なものだけで、これだけで誰でもがクオリティの高いレイアウトされた web ページをつくるのは困難です。

Snow Monkey テーマは web サイトの基本的なレイアウトまわりを、Snow Monkey Blocks は web ページの中身のレイアウトを担い、より多くの人がクオリティの高いレイアウトされた web サイト・web ページをつくれるようにするのが目標です。「コードが書けない人でもクオリティの高い web サイトをつくれるようになる」「コードが書ける人はより素早くサイトを制作できるようになりもっと別のところに時間や予算をかけられるようになる」。Snow Monkey がそのような体験を提供できるものになれるとうれしいなと思っています。

Snow Monkey の開発ワークフロー

アイデア
  • サポートフォーラムの要望フォーラムのトピック
  • 自分で使っていて思いついたこと
  • GitHub でのプルリクエスト
  • などなど
GitHub に issue をたてる

Snow Monkey は GitHub 上で開発しています。

アイデアをもとに開発・修正作業をはじめるときにはまず issue を立てるようにしています。どのような作業が進行中・あるいは予定されているかは issue で確認できます。

開発

issue を立てた後は黙々と開発していきます…。PHP Code Sniffer や JSLint、PHP Unit で自動チェックさせています。オープンリポジトリなのでプルリクも受け付けていますが、自動チェックを通るようにして送っていただけると大変助かります。

リリース

開発してチェックが通ったらリリースします。リリースされたらみなさんの WordPress のダッシュボードにアップデートの通知が届きます。

お知らせ

リリースが完了していたらブログにアップデート情報を書いています。マイナーアップデートの場合は見ずにアップデートしてもおおよそ問題ないと思いますが、メジャーアップデートのときはアップデート情報をよく確認してテスト環境で一度テストしてみて、問題ないことを確認してから本番環境に適用することをオススメします。

歓迎されること・されないこと

Snow Monkey には、サポートフォーラムオンラインコミュニティ(Slack)ミートアップイベントなどのコミュニティがあります。Snow Monkey・Snow Monkey コミュニティはあらゆる人にひらかれた場所でありたいと願っています。

また、良質で活発なコミュニケーションは Snow Monkey をより良くするためのアイデアの源泉にもなりますので、サポートフォーラムへの投稿、オンラインコミュニティ(Slack)への書き込み、ミートアップへの参加や発言は大歓迎です。

細かいルールを定めるつもりはありませんが、より多くの人が気持ちよく過ごすことができるように、歓迎されること・されないことを意識してコミュニケーションをとっていただけるとうれしいです。

歓迎されること

  • 思いやりを持ち、協力的に参加・行動すること
  • 他の参加者に気を配り、立場を尊重すること
  • 能動的に・積極的に参加すること
  • オープンな場所でコミュニケーションをとること

歓迎されないこと

  • 他の人の品位を傷つけたり、差別したり、嫌がらせとなる言動
  • ハラスメント行為
  • 過度な勧誘・営業などのスパム行為
  • 注意を受けても迷惑な行為を繰り返すなど、悪質な場合はサブスクリプション契約の解除、オンラインコミュニティ(Slack)のアカウント削除、ミートアップからの退室等の対処をさせて頂く場合があります。

開発者(キタジマタカシ)

フリーランスのWordPress テーマ / プラグインデベロッパー。 多数のプロダクトをオープンソースで開発・公開。現在は新規の受託はお断りし、WordPress テーマ Snow Monkey の開発・販売に注力しています。

各種リンク

Snow Monkey オンラインコミュニティ

Snow Monkey をより良いテーマにするために、今後の機能開発等について情報共有したりディスカッションをしたりする場所です。より多くのユーザーの交流があったほうがより良いプロダクトに育っていくと思いますので、ぜひご参加ください!