在register_block_type函数中注册你的块类型时,指定你使用的与之相关的ACF字段数据。在此示例中,我们将声明一个名为acf_field_example的ACF字段,并指定它用于在块渲染中获取数据。
function register_my_block() {
// Enqueue block's JS
wp_enqueue_script(
'my-block-script',
// Path to block.js file, with WP's internal "translations" script as a dependency
plugins_url('/block.js', __FILE__),
// Pass translations to JavaScript
array( 'wp-i18n', 'wp-element', 'acf-field-data' ),
'1.0.0',
true // Enqueue script in footer
);
// Register the block's settings
register_block_type(
'my/block',
array(
'editor_script' => 'my-block-script',
'render_callback' => 'my_block_output',
'attributes' => array(
// Define ACF field(s) used in the block
'acf_field_example' => array(
'type' => 'string',
'source' => 'meta',
'meta' => 'acf_field_example',
),
),
)
);
}
add_action( 'init', 'register_my_block' );
// 在block.js文件中声明`acf-field-data`作为你的脚本的依赖。
import ACFData from 'acf-field-data';
function my_block_output(props) {
return (
{props.attributes.acf_field_example}
);
}
以上代码中的 acf-field-data
的文件可另外下载安装。
此外,我们还需要在block.js中导入我们的ACF数据包并在函数中使用该数据包来获取ACF字段数据。要执行此操作,请使用以下代码:
import acfData from 'acf-field-data';
function my_block_output(props) {
// Get ACF data
const my_acf_field_data = acfData.get(props.attributes.acf_field_example);
return (
{my_acf_field_data}
);
}
上一篇:ACF字段数据未在块呈现中注册
下一篇:ACF字段未更新