Block Bindings API register_block_bindings_source()

カスタムフィールドを登録せず、定義した関数の実行結果をブロックにバインディングする方法。

register_block_bindings_source()

register_block_bindings_source(
  // カスタム バインディング ソースの一意の名前
  // 名前空間は必須
	string $source_name,
  // バインディング ソースを定義するプロパティの配列
  // 第一引数:label バインディング ソースを表す国際化されたテキスト文字列
  // 第二引数:get_value_callback コールバック関数
  // 第三引数:uses_context  (オプション)コールバックに必要な場合は、
  // コンテキストの配列を使用してブロック インスタンスを拡張
  // 現在の投稿 ID を使用する場合は[ 'postId' ]
	array $source_properties
);

段落を著作権ソースにバインド

add_action( 'init', 'projectslug_register_block_bindings' );

function projectslug_register_block_bindings() {
	register_block_bindings_source( 'projectslug/copyright', array(
		'label'              => __( 'Copyright', 'projectslug' ),
		'get_value_callback' => 'projectslug_copyright_binding'
	) );
}

function projectslug_copyright_binding() {
	return '© ' . date( 'Y' );

コードエディタ

<!-- wp:paragraph {
	"metadata":{
		"bindings":{
			"content":{
				"source":"projectslug/copyright"
			}
		}
	}
} -->
<p>Copyright Block</p>
<!-- /wp:paragraph -->

参考