Snow Monkey v6 のロードマップ

いつもメジャーアップデート(後方互換性が切れるアップデート)のときはリリース後にお知らせを書いているのですが、v5系のときに、子テーマ利用者の方から結構アップデートが大変だったという声を数件いただいたので、v6でおこなおうと考えていることを事前にお知らせしておこうと思います。

テンプレートパーツ読み込み方法の見直し

Snow Monkey はパーツごとにテンプレートを細かく分割しています。そして、そのパーツを表示するかしないかの判定は、そのテンプレート自体の中でおこなっています。例えばお知らせバー(template-parts/common/infobar)の場合だとこんな感じ。

<?php
/**
 * @package snow-monkey
 * @author inc2734
 * @license GPL-2.0+
 */

if ( ! get_theme_mod( 'infobar-content' ) ) {
	return; // カスタマイザーで入力がない場合は表示しない
}

... 以下お知らせバーの HTML ...

そして、これをメインとなるテンプレート(right-sidebar.php など)が呼び出しています。

<?php Helper::get_template_part( 'template-parts/common/infobar' ); ?>

つまり「とりあえず絶対呼びだして、画面表示するかしないかはパーツ自体が判定する」という動作になっています。

普通に使う分にはこれで問題ないのですが、カスタマイズしてパーツを使いまわししたいときに非常に不便です。例えば「お知らせバーと同じデザインでお知らせ以外を表示したい」という場合、現状だとお知らせバー自体のテンプレートの中でカスタマイザーで入力がない場合は終了するようになっているため「カスタマイザーで設定した以外の文章を渡して、全く別なところに表示させる」ということができません。

もしこういう形になっていたらどうでしょう?

<?php
/**
 * @package snow-monkey
 * @author inc2734
 * @license GPL-2.0+
 */

if ( ! $_content ) {
	return; // 外部から渡された文章が空の場合は表示しない
}

... 以下お知らせバーの HTML ...
// right-sidebar.php

if ( get_theme_mod( 'infobar-content' ) ) {
	Helper::get_template_part(
		'template-parts/common/infobar',
		[
			// カスタマイザーで設定した文章を渡す
			'_content' => get_theme_mod( 'infobar-content' ),
		]
	);
}

// もし子テーマ等で好きな場所で呼びだして好きな文章を表示させたい場合
Helper::get_template_part(
	'template-parts/common/infobar',
	[
		'_content' => 'ここに表示させたい文章を書く',
	]
);

こうなっていれば、Helper::get_template_part( 'template-parts/common/infobar' ); するときに渡す文章を変更すれば、カスタマイザーで設定した文章以外の文章を表示させることもできますし、好きなところで使い回すことができます。

お知らせバーを例にあげましたが、現状 Snow Monkey のほとんどのテンプレートパーツはこのような状態になっているため、v6 で全テンプレートパーツについて見直しをおこないたいと思います。

v5 のときほど後方互換性に問題がでることはないかもしれませんが、子テーマでテンプレートの上書き(templates/template-parts 内のファイル)をおこなっている場合は問題がでる可能性がありますので、v6 へのアップデート前には必ず事前チェックをおこなってください。

ヘッダー、フッター、サイドバー読み込み方法の見直し

本来、WordPress のテーマの直下には header.phpfooter.phpsidebar.php がありますが、Snow Monkey にはありません。

WordPress はテーマ内に header.php があればそれを利用し、なければコアの中に用意してあるフォールバック用の header.php を利用するようになっています。Snow Monkey はフォールバック用のテンプレートを vendor/mimizuku-core/src/view/templates/header/header.php に用意し、フォールバック処理を独自におこなっていますが、非常にまどろっこしい上にメリットがほとんどないため、もう少し素直な構成に変更しようと思います。

ちょっとここは具体的にどのように変更を入れればいいかまだ考えていないため、後方互換性的にどれくらい問題がおきそうかわかりません。v6正式リリース前にベータ版を配布しますので、そこでチェックして、おかしなところがあれば報告していただけると助かります!

装飾の簡素化

もともと Snow Monkey はメディアサイトにそのまま使える感じのものを想定していたので、今思うとちょっと装飾が過剰だったかなぁと思うところがあったりします。

記事一覧部分のホバーエフェクトなんかが最たるもので、記事のサムネイルにホバーすると、画像がちょっと拡大 + More と書かれたメッシュ柄のマスクが表示されます。これはこれで良いとは思うのですが、Snow Monkey 色がですぎますし、デザインを独自にカスタマイズしようとしたときにスタイルがきつくて邪魔だったりします。

そういうことで、この記事一覧部分のホバーエフェクトについてはちょっと透過くらいに変更しようかなと考えています。もし「いやいや、このホバーエフェクトは大好きだから残してほしい!」という方がいるようなら、追加 CSS にコピペすれば復活するように CSS を準備しょうと思います。

あとはページヘッダー、ショーケースウィジェットのパララックスですね。JavaScript が必要なので若干表示がもたつきますし、そこまでしてパララックスにする意味があるのだろうか…という気になってきたのでこれも廃止の方向で考えています。一応パララックスにするライブラリ自体は残しておいて、フックでちょろっと書き換えればまたパララックスにできるようにはしようと思います。

最後に

まだリリース時期などは考えていませんが、まずはちょっと作業してみて、どれくらいになりそうかわかってきたところでリリース時期を発表しようと思います。また、やっているうちに別な変更も思いつくことがあるかもしれないので、そのときは記事に追記します。

なにかあれば事前にディスカッションしたほうが良いと思うので、思うところがあればぜひオンラインコミュニティにでもコメントお願いします!

この記事を書いた人

キタジマ タカシ

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

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

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