2019年の Snow Monkey のアップデートを振り返る【Snow Monkey アドベントカレンダー 2019】

この記事は Snow Monkey アドベントカレンダー 2019 3日目の記事です。

さてさて、今年もこの時期がやってまいりました。今年はすでに数名の方が参加くださっていて、3日目が僕としては初回の記事になります。まだまだ空いているので小ネタ・ポエム・熱い記事、なんでも OK なのでぜひ参加してください!

今日は Snow Monkey の2019年のアップデートを振り返ってみようと思います。Snow Monkey はマイクロアップデート主義なので日々アップデートをおこなっているのですが、回数が多いので僕自身今年どんなアップデートをしたのかをおぼえていません…。ということでどのようなアップデートをしたのかを書き出してみようと思います。

※全部書き出すとあまりにも多すぎるので、細かい不具合の修正や、追加したけど後々削除した機能の追加・変更は省いています。

Snow Monkey v5.0.0

  • 全てのレイアウト/ビューファイル、テンプレートパーツの読み込み関数をオリジナルの get_template_part() に変更
  • リンクをスムーススクロールにできるユーティリティークラスを追加(.u-smooth-scroll
  • 「Snow Monkey: 最近の投稿」ウィジェットにテキストだけのシンプルなレイアウトを追加
  • 画像の非同期読み込み機能を追加
  • CSS のリファクタリング(軽量化)
  • 目次の自動表示の廃止
  • このページの子ページの自動表示の廃止
  • テンプレートパーツが増えてきたのでテンプレートパーツの階層を整理
  • 関数名を名前空間ベースに変更
  • テンプレートパーツに渡す引数をカスタマイズできるフィルターフック snow_monkey_get_template_part_args を追加
  • テンプレートパーツをつくらずに関数でテンプレートを定義できるアクションフック snow_monkey_get_template_part_<slug> を追加
  • レイアウトファイルを差し替えるためのフィルターフック snow_monkey_layout を追加
  • ビューファイルを差し替えるためのフィルターフック snow_monkey_view を追加

Snow Monkey は v5 からテンプレートを上書きしないでも部分的に置換できるようになったりフックが充実したり等、開発者向けの API が追加されて、現在の Snow Monkey らしさを持ったんだなーと。それまでの Snow Monkey がもう思い出せない…。

Snow Monkey v5.0.6

  • アップデートの問い合わせ先を GitHub から自前サーバーに変更(タグ付け → Travis CI → GitHub Releases → Webhook → 自前サーバーの流れで自動リリース)

Snow Monkey v5.1.0

  • クエリテンプレートを差し替えるためのフィルターフック snow_monkey_controller を追加
  • テンプレート読み込み周りのリファクタリング(処理の重複などがあったのを最適化)
  • クラシックエディタ、クラシックブロックにも「追加 CSS」が反映されるように変更

Snow Monkey v5.1.2

  • iPhone X のセーフエリア対応を開始

Snow Monkey は結構セーフエリア対応を頑張っているほうじゃないかなと思うのですが、スタートはここから。以後気づいたり報告をもらったりするたびにちょこちょこ改善していっています。

Snow Monkey v5.3.0 

  • 「WPAW: Google アドセンスウィジェット」に「リンクユニット」を追加
  • アクションフック snow_monkey_prepend_contents を追加
  • アクションフック snow_monkey_append_contents を追加
  • アクションフック snow_monkey_prepend_footer を追加
  • アクションフック snow_monkey_append_footer を追加
  • アクションフック snow_monkey_prepend_main を追加
  • アクションフック snow_monkey_append_main を追加
  • アクションフック snow_monkey_prepend_sidebar を追加
  • アクションフック snow_monkey_append_sidebar を追加
  • フィルターフック snow_monkey_template_part_root_hierarchy を追加
  • JavaScript を全体的に書き直し

Snow Monkey v5.3.3 

  • カスタム投稿のビューを「投稿」「固定ページ」と同じにする機能を追加

この辺でお知らせ程度の簡単なカスタム投稿タイプなら使いやすくなりましたね。

Snow Monkey v5.4.5

  • http〜 ではじまるリンクもスムーススクロールに対応
  •  Helper::get_template_part() の第3引数を指定して変数をテンプレートに渡したときに、呼び出し先テンプレートで変数を取得するためのヘルパーを追加 ( Helper::get_var( $hoge, [ オプションでデフォルト値 ] ) )

Snow Monkey v5.4.8

  • 「Snow Monkey: 最近の投稿」ウィジェットで「投稿タイプ」を選択できるように変更
  • 「Snow Monkey: 任意のタクソノミーの投稿」ウィジェットを追加

Snow Monkey v5.5.0

  • Helper::get_template_part() の HTML を置換できるフィルターフック snow_monkey_template_part_render を追加

今サポートフォーラムでテンプレートを変更する系のカスタマイズの質問がきたときはほとんどが snow_monkey_template_part_render で解決できることだったりします。これ以前のバージョンだとちょっとしたカスタマイズでもテンプレートの上書きが主流で副作用が大きかったので、これはすごく良いアップデートでしたね。

Snow Monkey v5.6.0 

  • 「カスタマイザー > ホームページ設定 > ホームページのコンテンツエリアに左右余白を追加する」を追加
  • ドロワーのアクセシビリティ対応(ドロワーを開いたときのフォーカスの移動等)
  • wp_body_open() を追加

Snow Monkey v5.7.0

  • コピーライト、トップへ戻るボタン、フッター固定ナビのセーフエリア対応
  • JavaScript ファイルを機能ごとに分割
  • app/setup ディレクトリを上書きできるように変更
  • 上記変更に伴い、上書き不可のセットアップファイルは app/constructor ディレクトリに移動
  • デバッグモードのときにテンプレートの読み込み位置に <!-- Start : hogehoge --> というコメントがでるようになっていたのですが、読み込み終了位置に <!-- End : hogehoge --> もでるように変更

このバージョンで、テンプレートパーツ以外にも機能的な部分を定義したファイルを上書きすることができるようになりました。用途としては「機能の変更」ではなくて「機能の無効化」をできるようにするためです。無効化したらそもそもテーマが機能しなくなるような重要なものについては上書きされないようにディレクトリを分けました。

Snow Monkey v6.0.0

  • プラグインからでもカスタムページテンプレートを追加可能に
  • Snow Monkey で使用している FontAwesome アイコンだけを読み込むオプションを追加(カスタマイザー > ページ速度最適化 > 軽量な FontAwesome を使用する)
  • ベトナム語翻訳を追加(KUMAI さん)
  • カスタムウィジェットのフックで suppress_filters を変更可能に
  • ソーシャルナビゲーションの項目をカスタマイズするためのフィルターフック snow_monkey_social_nav_item を追加
  • snow_monkey_get_template_part_<slug>-<name> アクションフックを追加
  • テンプレート読み込みまわりのリファクタリング(ほぼ全てのテンプレートが Helper::get_template_part() を経由するようになり、関連するフックでカスタマイズが可能になりました)
  • マウスホバーで網や画像拡大するエフェクトの廃止
  • パララックスエフェクトの廃止

ベトナム語の翻訳を追加したバージョン。こういうのはすごくうれしい!もしお仕事等で多言語化して、公式に取り込んでも良いよという方がいらっしゃいましたら、ぜひご連絡ください。

また、このバージョンからテンプレートパーツだけではなく、ヘッダーやフッター、クエリテンプレートも Helper::get_template_part() を通るようになり、フックでゴニョゴニョできるようになりました。

あと、このバージョンから「受託開発のベースに使いやす」くなることを意識して、エフェクト系の CSS を外しました。受託開発の場合デザインをカスタマイズすることが多いので、装飾系のスタイルは薄いほうがカスタマイズがしやすくなるためです。以降数バージョンで装飾を簡素・シンプルにするアップデートが続きます。

Snow Monkey v6.1.0

  • プロフィールボックスに Pinterest の設定を追加
  • meta thumbnail 対応(アイキャッチ画像 → デフォルトアイキャッチ画像の順に表示)

Snow Monkey v6.2.0

  • カスタマイザー > デザイン > ○○アーカイブページ設定 > ビューテンプレートの設定」を追加

Snow Monkey v6.2.2

  • カスタマイザー > デザイン > ○○ページ設定 > ビューテンプレートで「投稿のビューレンプレート」を選んだときに、そのカスタム投稿紐づくタクソノミーを表示するように変更

Snow Monkey v7.0.0

  • 子テーマ等で「テンプレートの上書き」をおこなった場合に、テンプレートが古かったり移動したりしている場合に警告をだす機能を追加
  • 関連記事レイアウトの設定を追加(カスタマイザー > デザイン > 投稿の設定 > 関連記事レイアウト)
  • グローバルナビゲーションのプルダウン表示をホバー > クリックに変更するオプションを追加(PHP コードの追加が必要)
  • ブログトップページのページタイトル(h1見出し)を非表示にする機能を追加(カスタマイザー > ホームページ設定 > 投稿ページのタイトルを表示)
  • Snow Monkey のカスタマイザー定義の読み込み前に実行されるアクションフック snow_monkey_pre_load_customizer を追加
  • Snow Monkey のカスタマイザー定義の読み込み後に実行されるアクションフック snow_monkey_post_load_customizer を追加
  • 全体的なデザインのバランス調整

このバージョンでテンプレートを上書きしている場合に、アップデートで元テンプレートが更新された場合に警告がでるようになりました。Snow Monkey は(というか僕は)テンプレートの上書きを推奨していませんが、もし従来のように上書きをする開発をしている場合も、他テーマよりメンテナンスしやすくなったと思います。

また、Snow Monkey のカスタマイザーの設定ファイルの読み込み前後にアクションフックを追加しました。これによって、Snow Monkey のカスタマイザーから設定パネルを消したり、あるいは追加することが簡単にできるようになりました。

Snow Monkey v7.2.0

  • アクセントカラーとサブアクセントカラーをエディターのカラーパレットに反映

これは地味に良い機能な気がする。

Snow Monkey v7.4.0

  • .u-hidden-xxx なブロックをエディタ上では常に表示するように変更
    • Snow Monkey には、デバイスサイズによってその要素を非表示にできる CSS のユーティリティクラスがあります。
      • u-hidden … 全てのサイズで非表示
      • u-hidden-sm … スマホサイズで非表示
      • u-hidden-md … タブレットサイズで非表示
      • u-hidden-lg … PC サイズで非表示
      • u-hidden-xl … ワイド PC サイズで非表示
      • u-hidden-md-up … タブレットサイズ以上で非表示
      • u-hidden-lg-up … PC サイズ以上で非表示
    • これをブロックの追加 CSS にクラスに追加すれば、任意のデバイスサイズでそのブロックを非表示にできるのですが、指定によってエディター上からも非表示になってしまう問題があったため、エディター上では強制的に表示されるように変更しました。

Snow Monkey v7.5.0

  • プロフィールボックスに Amazon のリンク設定を追加

Snow Monkey v7.6.0

  • ランディングページ(スリム幅)テンプレートを追加
  • アンカーリンクを開いたときに管理バーの存在も考慮して初期表示位置を調整するように変更

Snow Monkey v7.7.0

  • カスタマイザーに「PC 時のカスタムロゴの拡大率」設定を追加
  • カスタマイザーにお知らせバーの文字色、背景色の設定を追加

Snow Monkey v7.8.0

  • プロフィールボックスに LINE を追加
  • ソーシャルナビに LINE を追加
  • ランキング/任意の投稿/カルーセルウィジェットの設定パネルに検索機能を追加

Snow Monkey v7.9.0

  • メニュー項目へ「説明」を表示するかどうかを設定するフィルターフック snow_monkey_nav_menu_item_title_show_description を追加

Snow Monkey v7.10.6

・ドロワーもタブ操作できるように

Snow Monkey はグローバルナビゲーション・ドロワーのアクセシビリティも結構気をつけているつもりなのですがどうでしょう?

Snow Monkey v7.11.0

  • 目次部分をカスタマイズしやすいようにいくつかのフックを追加

Snow Monkey v7.12.0

  • 「WPAW: 最近の投稿」「WPAW: 任意の投稿」「WPAW: ランキング」ウィジェットのサムネイルサイズを変更できるフィルターフック inc2734_wp_awesome_widgets_posts_list_image_size を追加
  • iOS13 で、フォント設定が sans-serif のときフォントが太くなる不具合を修正

Snow Monkey v7.13.0

  • デフォルトアイキャッチ画像、デフォルトページヘッダー画像の alt 対応
  • フィルターフック inc2734_wp_view_controller_render_type を追加

Snow Monkey v7.13.2

meta description、meta thumbnail の出力部分をリファクタリングしました。これまでアーカイブページでは meta description、meta thumbnail は問答無用で出力されませんでしたが、今回のアップデートでデフォルトでは表示されないけど、フックでカスタマイズすれば出力することもできる状態になりました。 inc2734_wp_seo_description 、 inc2734_wp_seo_thumbnail フックでカスタマイズできます。 

meta、ogp まわりは思いの外複雑になりがちなので大変ですね…。

Snow Monkey v8.0.0

  • WordPress 5.3 対応
  • ブログカードカスタマイズ用のフックを追加
  • Snow Monkey オリジナルウィジェットカスタマイズ用のフックを追加
  • クエリテンプレートの読み込み処理をリファクタリング
  • 子テーマ利用時以外もテンプレート上書き関連のデバッグ警告がでるように変更
  • 追尾サイドバーの CSS 化
  • 左右回り込み(.alignright.alignleft)の最大幅指定を追加

Snow Monkey v8.0.5

  • カスタム投稿タイプ + 日付アーカイブページのパンくず対応

Snow Monkey v8.1.0

  • カスタマイザーに「グローバルナビゲーションを縦書きにする」を追加
  • ヘッダー位置が「オーバーレイ」のときに「ヘッダー位置を固定する」の設定を追加

Snow Monkey v8.2.0

  • ピックアップスライダーウィジェットに「最大表示数」の設定を追加
  • オーバレイヘッダーのとき「スクロール時に背景を白くする」の設定項目を追加

ということでまとめてみました。1年で4回もメジャーアップデートしてしまいすみません…。ちなみに、2019年のリリース回数は97回だったようです(+ Snow Monkey Blocks もあるのよ)。

明日もなんと僕です。「SWELL のココがうらやましい!」を書きたいと思います!Snow Monkey アドベントカレンダー2019、まだまだ空いていますので、ぜひ参加してください!

この記事を書いた人

キタジマ タカシ

長崎県長崎市在住。地元のWeb制作会社でWebデザイナー/エンジニアとして従事した後、2015年にフリーランス [ モンキーレンチ ] として独立。WordPress のテーマやプラグイン、ライブラリ、CSS フレームワーク等、多数のプロダクトをオープンソースで開発・公開しています。

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

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