最近、Snow monkeyでサイト制作する機会が多いです。
テーマ自体は、Snow monkeyじゃなくてもSwellでもLightningでもいいのですが、デザイン的にはSnow monkeyが一番癖が無い気はしています。
Snow monkeyは常に最新版のWordpressじゃないと動かないので、wordpressとテーマを更新がペアになっています。テーマを更新すると自前で当てているCSS部分は、デザインが崩れることも多く、Snow mokeyはサイトをメンテするのがメッサ大変なテーマだと思います。
あるサイトをSnow monkeyで制作しているときに追加CSSをいじろうと思ってカスタマイザーを開くと3分ぐらい待たされる状況になりました。
我慢の限界を超えているので、調べたら対処方法がわかったので、自分のためにメモしておきます。
カテゴリやタグなどが大量のサイトだとカスタマイザーを開くのが遅くなる
カスタマイザーは設定パネル・セクションを予め読み込んでおかなければいけないのですが、Snow Monkey はカテゴリーページやタグページにページ減っだ画像を設定する機能があるので、カテゴリーやタグが多いとそれらの設定セクションの読み込みにめちゃ時間がかかってしまいます。
たしかに、今回問題が起きたサイトはカテゴリーやカスタムタクソノミー、タグなどが大量に登録されているサイトでした。
解決のためのコードその1
add_filter(
'snow_monkey_get_template_part_args',
function( $args ) {
$inactive = array(
'app/customizer/design/sections/category/section',
'app/customizer/design/sections/custom-taxonomy/section',
'app/customizer/design/sections/custom-post-archive/section',
'app/customizer/design/sections/post-tag/section',
);
if ( in_array( $args['slug'], $inactive ) ) {
$args['slug'] = null;
}
return $args;
}
);
解決のためのコードその2
フックでカスタマイザーの読み込みを無効化する方法もあるようです。なかなかよく考えられた仕組みだと思います。
無効化するphpファイルは以下のものです。
add_action( 'snow_monkey_get_template_part_app/customizer/design/sections/category/section', '__return_false' );
add_action( 'snow_monkey_get_template_part_app/customizer/design/sections/custom-taxonomy/section', '__return_false' );
...
https://github.com/inc2734/snow-monkey/wiki/Action-hooks#snow_monkey_get_template_part_slugを見ると非推奨になっているので、action hookではなく、filter hookの方を使う方がいいようです。
add_filter( 'snow_monkey_get_template_part_render_app/customizer/design/sections/category/section', '__return_false' );
add_filter( 'snow_monkey_get_template_part_render_app/customizer/design/sections/custom-taxonomy/section', '__return_false' );
...
まとめ
この問題が発生するのは、特殊ケースなので情報が見つけにくいのですが、フォーラムに答えがあってよかったです。
設定が必要な時以外は、不要な機能はOFFにしておくことで開発スピードが上がると思います。