と呼ばれる初期化しようとしている新しいブロックがありhero
ます。現在、そのブロックに ACF フィールド グループを割り当てようとしていますが、現在 WordPress バックエンドで次のように表示されています。
ブロックを作成してブロック タイプを登録しましたが、どこが機能していないのかわかりません。
これが私のアプローチです:
/acf-blocks/blocks.php
<?php
function register_acf_block_types() {
$hero = array(
'name' => 'hero',
'title' => __('Hero'),
'description' => __(''),
'render_callback' => 'block_render',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array( 'hero' ),
);
}
$blocks = [
$hero
];
return $blocks;
// Check if function exists, and hook into setup
if( function_exists('acf_register_block_type') ) {
add_action('acf/init', 'register_acf_block_types');
}
?>
/acf-blocks/render.php
<?php
/**
* This is the callback that renders the block.
*/
function block_render( $block ) {
// convert name ("acf/testimonial") into path friendly slug ("testimonial")
$slug = str_replace('acf/', '', $block['name']);
// include a template part from within the "template-parts/block" folder
if( file_exists( get_theme_file_path("/template-parts/block/content-{$slug}.php") ) ) {
include( get_theme_file_path("/template-parts/block/content-{$slug}.php") );
}
}
?>
/acf-blocks/functions.php
<?php
function block_acf_init(){
$blocks = require(__DIR__.'/inc/acf-blocks/blocks.php');
foreach($blocks as $block) {
acf_register_block($block);
}
}
?>
/template-parts/block/hero.php
<?php
/*
* Block Name: hero
*/
?>
ここに私のフォルダ構造があります:
theme
inc
acf-blocks
blocks.php
functions.php
render.php
template-parts
blocks
hero.php