この記事は 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 には、デバイスサイズによってその要素を非表示にできる 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、まだまだ空いていますので、ぜひ参加してください!