Emulsion Theme

block editor ( gutenberg ) 対応した新しいコンセプトのテーマ

gutenberg plugin 1.5.2 FSE 備忘

gutenberg plugin 1.5.2 FSE 備忘

gutenberg plugin 1.5.0 位から、FSEテンプレートが適用され始める

gutenbergプラグインをアクティブにすると、emulsionテーマはブロック表示になってしまいます。通常のテーマで表示するためには、gutenbergをデアクティベートしてください

この問題は、emulsionテーマ1.6.4で、修正されました。gutenbergプラグインがアクティブでも、FSEテーマかどうか判定の上で、template-partファイルがロードされるようになります。

Gutenberg プラグイン 1.5.2で気づいたんですが、プラグインをアクティブにすると、block-template-partsホルダー内の、header.html が読み込まれているのに気付いた。

wordpress.org/themes/emulsion でのプリビュー表示は、以下のようになっている

emulsionテーマは、実験機能としてblock-template-partsホルダーに、header.htmlがあります。

通常、gutenbergはFSEサポートテーマか従来型のテーマかを識別するのにgutenberg_is_fse_theme()という関数を使って、サポートテーマかそうでないかを識別しています

この関数は、block-templatesホルダーに、index.htmlが存在するかどうかをチェックして、真偽値を返していますが、gutenberg1.5.0では、テンプレートのロード順が変更になり、index.htmlが存在していない場合でも、ブロックテンプレートをロードするようになった模様です。

実験機能のFSE用のCSSは、上記の関数を使って、FSEが有効な場合に、CSSをロードするようになっているため、上記のようにスタイルがまるであたっていない状態でプリビューされてしまいます。

FSEを有効にしていないのに、ブロックテンプレートがロードされるので、厄介なことになってしまったと、ちょっと困っていますが、当面はCSSで、プレビューをごまかして表示して様子を見ようと考えています。 1.6.3でCSSを追加して、以下のようにごまかしました。

その後、

emulsion テーマ 1.9.4 に、以下のフィルターを追加することにしました。上記のCSSは削除します

if ( function_exists( 'gutenberg_is_fse_theme' ) && ! gutenberg_is_fse_theme() ) {
	/**
	 * Gutenberg 10.5.4
	 * Fixed an issue where the theme would load 
         * without determining the FSE theme when it had an FSE template part file
	 */
	remove_action( 'wp_loaded', 'gutenberg_add_template_loader_filters' );
}