WordPress 6.9/7.0で古いクラシックテーマのギャラリーブロックが縦積みになった原因と解決方法

WordPressを6.9系に更新した時、クラシックエディタ時代からのテーマを使用している場合、クラシックエディター時代のギャラリーは横並びになるのに、ブロックエディタのギャラリーブロックに変換すると縦積みになってしまう。

色々調べて古のテーマにはtheme.jsonもないし、まずはtheme.jsonを作成してfunctions.phpに以下を入れてみた。

functions.php
//読み込みスクリプト
function Load_style(){
  wp_enqueue_style('reset',get_template_directory_uri().
   '/assets/css/reset.css');
  wp_enqueue_style('style',get_template_directory_uri().
   '/assets/css/style.min.css');
  wp_enqueue_style('wp-block-library-theme');  //ここを追加
}
add_action('wp_enqueue_scripts','Load_style'); 

…が解決せず。

theme.json は必要だけど、それだけでは wp-includes 側のブロックCSS読み込み問題までは解決しない。

追加CSSで .wp-block-gallery に display:flex を書けば見た目は直るけれど、他の不具合が出そうだったので、WordPress本体のブロックCSSをちゃんと読み込ませる方向で対応した時の 覚書メモ

古いクラシックテーマでブロックCSSをまとめて読み込ませる方法


WordPress 6.9以降では、ブロックCSSを必要な分だけ読み込む仕組みがあるようで、古いクラシックテーマではギャラリーブロック用のCSSや is-layout-flex のCSSがうまく出ないことがあった。

そこで色々調べた結果以下の方法で解決。

設定でオンデマンド読み込みを使わず、従来のようにブロックCSSをまとめて読み込ませる。

add_filter( 'should_load_separate_core_block_assets', '__return_false', 100 );
add_filter( 'should_load_block_assets_on_demand', '__return_false', 100 );

これでギャラリーブロックは横並びで表示されるようになった。

theme.json は必要だけど、それだけでは解決しない場合があり、古いクラシックテーマでは WordPress 本体のブロックCSS読み込み方式も確認した方がよさそう。 追加CSSで見た目だけ直す方法もあるけれど、今回は WordPress 本体のブロックCSSをまとめて読み込ませる方向で解決した。

長い間大事にしてきたThemeもこれでまだまだ愛用できそうですね