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

Snow Monkey v11.6.0 の概要

機能追加

  • 記事一覧部分のテンプレートにコンテキストの設定を追加
  • ハンバーガーボタンの位置の設定を追加

変更

  • .p-archvie を、template-parts/archive/archive.php として切り出し
  • .c-entries を、template-parts/common/entries.php として切り出し
  • デザインスキンのメイン CSS は Snow Monkey および関連アドオンより後に読み込まれるように変更
  • 表示高速化のため、パンくず用のデータをキャッシュするように変更
  • お知らせバーで FontAwesome の HTML タグを使えるように変更(例:<i class="fas fa-star"></i>
  • はてなブックマークボタンのシェアカウントは、カスタマイザーで「http と https の両方をカウントする」が有効なときも合算しないように変更(はてなブックマーク側で合算して表示してくれるため)
  • 固定ページ・カスタム投稿の場合でも投稿と同じようなコンポーネント(シェアボタンとかプロフィールボックスとか)を表示できるように templates/view/content.phptemplates/view/content-xxx.php の構造を変更
  • カスタム投稿アーカイブの場合でも投稿のアーカイブページと同じようなコンポーネントを表示できるように templates/view/archive.phptemplates/view/archive-xxx.php の構造を変更
  • 固定ページの場合はデフォルトでコメントエリアが表示されなくなりました

不具合の修正

  • カスタマイザーで設定した「ページレイアウト」の幅がエディターに反映されないことがある不具合を修正
  • お知らせバーの文章が長いときに、レイアウトが崩れることがある不具合を修正

ハンバーガーボタンの位置の設定を追加

カスタマイザー → デザイン → ヘッダー → ハンバーガーボタンの位置で、左か右かを選ぶことができるようになりました。

右の場合(デフォルト。これまで通り)
左の場合

記事一覧部分のテンプレートにコンテキストの設定を追加

記事一覧部分のテンプレート(template-parts/widget/snow-monkey-posts.phptemplate-parts/common/entries.phptemplate-parts/loop/*.php など)は、記事一覧ページ、最近の投稿ウィジェット、最近の投稿ブロックなど様々な場所から共通利用されるようになっています。

そのため、snow_monkey_template_parts_render などのフックで HTML をカスタマイズしようとしたときに「記事一覧ページの一覧部分はカスタマイズしたいけど最近の投稿ウィジェットの一覧部分はカスタマイズしたくない」というようなことがやりづらくなってしました。

今回のアップデートで、テンプレート変数に _context という変数を追加しました。この _context をチェックすれば、どの文脈で記事一覧部分のテンプレートが読み込まれているかがわかり、「記事一覧ページの一覧部分はカスタマイズしたいけど最近の投稿ウィジェットの一覧部分はカスタマイズしたくない」のようなことが実現できるようになりました。

add_filter(
	'snow_monkey_template_part_render_template-parts/common/entries',
	function( $html, $name, $vars ) {
		if ( 'archive' === $vars['_context'] ) {
			// 記事一覧ページのときだけカスタマイズする
			return str_replace( ... );
		}
		return $html;
	},
	10,
	3
);

ちなみに、各テンプレートに渡されるテンプレート変数は snow_monkey_get_template_part_args フィルターフックでカスタマイズできますが、_context は例外的にフックから変更不可としています。

固定ページ・カスタム投稿の場合でも投稿と同じようなコンポーネント(シェアボタンとかプロフィールボックスとか)を表示できるように templates/view/content.php、templates/view/content-xxx.php の構造を変更

これまで固定ページやカスタム投稿ページに例えばシェアボタンを表示したいと思ったときは、テンプレートを上書きするか、snow_monkey_template_part_render フックで HTML を置換するか形で追加するしか方法がなく、少々複雑度やメンテナンスの難しさが高い状態でした。

今回のアップデートで、snow_monkey_get_template_part_args フックで表示したいコンポーネント用の変数を有効にするだけで出し分けができるようになりました。

/**
 * 固定ページにシェアボタンを表示する例。
 * 単純に $args['vars']['_display_top_share_buttons'] = true でも良いけど、
 * 一応カスタマイザーでシェアボタンの設定がしてある場合だけ表示されるようにしてみました。
 */
add_filter(
	'snow_monkey_get_template_part_args_templates/view/content',
	function( $args ) {
		if ( 'page' === $args['name'] ) {
			$share_buttons_position = get_option( 'mwt-share-buttons-display-position' );
			$display_top_share_buttons = ! empty( $share_buttons_position );
			$args['vars']['_display_top_share_buttons'] =$display_top_share_buttons;
		}
		return $args;
	}
);

表示/非表示できるコンポーネントや変数の名前は下記ページで確認してください。

固定ページの場合はデフォルトでコメントエリアが表示されなくなりました

次のコードを追加することで固定ページでもコメントエリアを表示するようになります(下記のコードを追加しても、ディスカッションの設定でコメントを無効化している場合は表示されません)。

add_filter(
	'snow_monkey_get_template_part_args_templates/view/content',
	function( $args ) {
		if ( 'page' === $args['name'] ) {
			$args['vars']['_display_comments'] = true;
		}
		return $args;
	}
);

この記事を書いた人

キタジマ タカシ

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

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

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