我想为我的 front-page.php 创建自定义 ACF 古丁堡块我已经在 Fuction.php 中注册了 ACF 块,如下所示:
function acf_portfolio_item_block() {
if( function_exists('acf_register_block') ) {
acf_register_block(array(
'name' => 'front-page',
'title' => __('Front Page'),
'description' => __('A custom block for Front Page'),
'render_template' => get_template_directory().'front-page.php',
'category' => 'layout',
'icon' => 'excerpt-view',
'keywords' => array( 'front','front-page','home' ),
));
}
}
add_action('acf/init', 'acf_portfolio_item_block');
我在 front-page.php 上的块的 HTML:
<?php
$title1 = get_field( 'title' );
$subtitle1 = get_field( 'subtitle' );
$description1 = get_field( 'description' );
?>
<section class="hero-sec">
<div class="container">
<div class="row ">
<div class="col-md-5 hero-col-1">
<h1 class="fw-bold">
<?php echo $title1; ?>
</h1>
<h1>
<?php echo $subtitle1; ?>
</h1>
<p>
<?php echo $description1;?>
</p>
</div>
</div>
</div>
</section>
但它无法在首页 .php 上显示数据
答案 0 :(得分:0)
WordPress 中的 allowed_block_types
过滤器钩子允许您指定在特定条件下允许哪些块。
由于您在创建自定义块时使用了 ACF 并且您将块命名为 name => 'front-page'
,因此最终块名称将为:acf/front-page
function wp123_allowed_block_types($allowed_block_types, $post) {
if(is_front_page()) {
return [
'acf/front-page'
];
}
return $allowed_block_types;
}
add_filter('allowed_block_types', 'wp123_allowed_block_types', 10, 2);