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もこれでまだまだ愛用できそうですね
