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