block-customize.php
/**
* ブロックバリデーション登録
*/
function gutenberg_tutorial_enqueue_block_editor(){
// ビルド時に自動生成される情報を取得
$assets_file = include plugin_dir_path(__FILE__ ) . "build/index.asset.php";
wp_enqueue_script(
"gutenberg-tutorial-script",
plugin_dir_url(__FILE__ ) . 'build/index.js',
$assets_file["dependencies"],
// ビルド時に自動生成されるバージョン番号を使用する場合
$assets_file["version"],
true
);
}
add_action( "enqueue_block_editor_assets", "gutenberg_tutorial_enqueue_block_editor" );
index.js
import "./variations";
variations.js
import { registerBlockVariation } from "@wordpress/blocks";
// registerBlockVariation()関数は、元のブロックの名前と、作成するバリエーションを定義するオブジェクトを受け入れ
// 第位置引数:拡張対象である元ブロックの名前
registerBlockVariation("core/media-text", {
name: "media-text-custom",
title: "Media & Text Custom",
attributes: {
align: "wide",
backgroundColor: "Accent",
},
innerBlocks: [
[
"core/heading",
{
level: 3,
placeholder: "Heading",
},
],
[
"core/paragraph",
{
placeholder: "Enter content here...",
},
],
],
isDefault: false,
});
registerBlockVariation("core/media-text", {
name: "text-media",
title: "Text & Media",
attributes: {
align: "wide",
backgroundColor: "tertiary",
mediaPosition: "right",
},
isActive: ["mediaPosition"],
});