Snow Monkey v11.1.0 をリリースしました

Snow Monkey v11.1.0 の概要

機能追加

  • テンプレートに決め打ちになっているテキストをテンプレート変数($args)化
  • フィルターフック snow_monkey_get_template_part_args_{slug} を追加
  • フィルターフック snow_monkey_pre_template_part_render_{slug} を追加
  • フィルターフック snow_monkey_template_part_render_{slug} を追加
  • 色に関する CSS カスタムプロパティを追加

不具合の修正

  • アップデート時に RequiresRequires PHP が反映されるように修正

テンプレートに決め打ちになっているテキストをテンプレート変数($args)化

例えば 404のときに表示されるメッセージ。このメッセージはテンプレートに決め打ちになっているため、変更するには404用のテンプレートを上書きするか、snow_monkey_template_part_render フックを使って正規表現で書き換えるしか方法がありませんでした。

今回のアップデートで、このような決め打ちになっているテキストを $args 化したので、snow_monkey_get_template_part_args フックで素直に差し替えることができるようになりました。

add_filter(
	'snow_monkey_get_template_part_args',
	function( $args ) {
		if ( 'template-parts/content/entry/content/content' === $args['slug'] && '404 === $args['name'] ) {
			$args['vars']['_message'] = '404だよ!';
		}
		return $args;
	}
);

フィルターフック snow_monkey_get_template_part_args_{slug} を追加

テンプレート呼び出し時に slugname・テンプレート変数を差し替えるための snow_monkey_get_template_part_args フィルターフックがあります。これは全てのテンプレートが呼び出されるたびに実行されるため、例えば1つのテンプレートだけに対して実行したいときも、全てのテンプレートの呼び出しのたびに実行されてしまうという問題がありました。

例えば前述した404ページのメッセージを書き換えるコード、

add_filter(
	'snow_monkey_get_template_part_args',
	function( $args ) {
		if ( 'template-parts/content/entry/content/content' === $args['slug'] && '404 === $args['name'] ) {
			$args['vars']['_message'] = '404だよ!';
		}
		return $args;
	}
);

は、404ページのテンプレートが呼び出されるときだけ実行されれば良いのに、全てのテンプレートが呼び出されるたびに「404ページのテンプレートかどうか」という if が実行されてしまいます。

今回のアップデートで、特定のスラッグのテンプレートに対してだけフックできるフィルターフックを追加しました。先のコードを書き換えると下記のようになります。

add_filter(
	'snow_monkey_get_template_part_args_template-parts/content/entry/content/content',
	function( $args ) {
		if ( '404 === $args['name'] ) {
			$args['vars']['_message'] = '404だよ!';
		}
		return $args;
	}
);

フィルターフック snow_monkey_pre_template_part_render_{slug} を追加

こちらも前述の snow_monkey_get_template_part_args_{slug} と同じで、特定のスラッグのテンプレートにだけ snow_monkey_pre_template_part_render を実行できるフィルターフックになります。

フィルターフック snow_monkey_template_part_render_{slug} を追加

こちらも前述の snow_monkey_get_template_part_args_{slug} と同じで、特定のスラッグのテンプレートにだけ snow_monkey_template_part_render を実行できるフィルターフックになります。

色に関する CSS カスタムプロパティを追加

次の CSS カスタムプロパティを追加しました。

  • --_color-black
  • --_color-white
  • --_color-gray
  • --_dark-color-gray
  • --_darker-color-gray
  • --_darkest-color-gray
  • --_light-color-gray
  • --_lighter-color-gray
  • --_lightest-color-gray
  • --_dark-color-text
  • --_darker-color-text
  • --_darkest-color-text
  • --_light-color-text
  • --_lighter-color-text
  • --_lightest-color-text

ほぼ全ての色指定部分に仕込んだので、好みの色に変更したり、独自にダークモード対応したりということがやりやすくなっていると思います。

この記事を書いた人

キタジマ タカシ

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

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

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