画像ブロックのみならず、標準のブロック挿入時の初期設定(デフォルト設定)はblock_type_metadata_settingsにフックさせるとある程度指定することができます。
そのフックを使って画像ブロックの初期設定を指定した際に、標準のライトボックスを有効にできないことが発覚し、以下のコードで解決できましたので、備忘録を兼ねて公開しておきます。
このコードはtheme.jsonを持つテーマ(ブロックテーマかハイブリッドテーマ)でないと機能しませんのでご注意ください
以下のコードを有効化しているテーマのfunctions.phpへ追加すると、画像ブロックを挿入した際に自動でライトボックス(クリックで拡大)が有効になります。
function pwcn_image_light_box_true_default( $theme_json ){
$new_data = array(
'version' => 3,
'settings' => array(
"blocks" => array(
"core/image" => array(
"lightbox" => array(
"enabled" => true,
"allowEditing" => true
),
),
),
),
);
return $theme_json->update_with( $new_data );
}
add_filter( 'wp_theme_json_data_theme', 'pwcn_image_light_box_true_default' );
このコードは、通常theme.jsonの編集を行って追加するコードをPHPからマージ(追加)するようにしたものですので、以下の公式ページを参照して必要なコードを直接theme.jsonへ追加しても同じことができます。
block_type_metadata_settingsフックを見つけた時は、お!これでいろいろと標準値が指定できて便利!と思いましたが、いろいろと変えてみると、今回のライトボックスのように指定できないものが結構ありますね。









コメントを残す