Timber + Gutenberg ACF Blocks 不渲染前端
Timber + Gutenberg ACF Blocks doesnt rendering front end
这是我的 Class 在 Timber Site class 上扩展的内容。
<?php
class EngineACF extends Timber\Site {
public function __construct() {
parent::__construct();
add_action( 'admin_head' , [$this, 'adminStyle']);
add_action( 'acf/init', [$this, 'acfBlocks'] );
}
/**
* Define Gutenberg Blocks
* @version 1.0
*/
public function acfBlocks()
{
if (!function_exists( 'acf_register_block' )) {
return;
}
$blocks = [
[
'name' => 'homepage-slider',
'title' => 'Homepage Slider'
]
];
foreach ($blocks as $perKey => $perBlock) {
acf_register_block(
[
'name' => data_get($perBlock, 'name'),
'title' => data_get($perBlock, 'title'),
'description' => data_get($perBlock, 'title'),
'render_callback' => [$this, 'renderAcfCallback'],
'category' => 'formatting',
'icon' => 'format-aside',
'keywords' => [str_replace(' ', ',', data_get($perBlock, 'name'))],
]
);
}
}
/**
* Render Dynamic Gutenberg block template
* @version 1.0
*/
public function renderAcfCallback( $block, $content = '', $is_preview = false ) {
$blockName = data_get($block, 'name');
$blockName = str_replace('acf/', '', $blockName);
$context = Timber::context();
$context['block'] = $block;
$context['fields'] = get_fields();
$context['is_preview'] = $is_preview;
Timber::render( 'blocks/'.$blockName.'-block.twig', $context );
}
}
我也有,blocks/homepage-slider-block.twig 文件。
在管理面板中,使用 gutenberg 编辑器一切正常。但是在前端,post 内容没有 work/render 正确。
有什么帮助吗?
谢谢
输出如:
好的。我刚刚发现问题所在。
我使用的是来自 twig 的 post.post_content
变量。
显然那不是包含最终内容的变量。
未来 供遇到此类问题的人参考:
使用 {{post.content}}
变量。
这是我的 Class 在 Timber Site class 上扩展的内容。
<?php
class EngineACF extends Timber\Site {
public function __construct() {
parent::__construct();
add_action( 'admin_head' , [$this, 'adminStyle']);
add_action( 'acf/init', [$this, 'acfBlocks'] );
}
/**
* Define Gutenberg Blocks
* @version 1.0
*/
public function acfBlocks()
{
if (!function_exists( 'acf_register_block' )) {
return;
}
$blocks = [
[
'name' => 'homepage-slider',
'title' => 'Homepage Slider'
]
];
foreach ($blocks as $perKey => $perBlock) {
acf_register_block(
[
'name' => data_get($perBlock, 'name'),
'title' => data_get($perBlock, 'title'),
'description' => data_get($perBlock, 'title'),
'render_callback' => [$this, 'renderAcfCallback'],
'category' => 'formatting',
'icon' => 'format-aside',
'keywords' => [str_replace(' ', ',', data_get($perBlock, 'name'))],
]
);
}
}
/**
* Render Dynamic Gutenberg block template
* @version 1.0
*/
public function renderAcfCallback( $block, $content = '', $is_preview = false ) {
$blockName = data_get($block, 'name');
$blockName = str_replace('acf/', '', $blockName);
$context = Timber::context();
$context['block'] = $block;
$context['fields'] = get_fields();
$context['is_preview'] = $is_preview;
Timber::render( 'blocks/'.$blockName.'-block.twig', $context );
}
}
我也有,blocks/homepage-slider-block.twig 文件。 在管理面板中,使用 gutenberg 编辑器一切正常。但是在前端,post 内容没有 work/render 正确。
有什么帮助吗? 谢谢
输出如:
好的。我刚刚发现问题所在。
我使用的是来自 twig 的 post.post_content
变量。
显然那不是包含最终内容的变量。
未来 供遇到此类问题的人参考:
使用 {{post.content}}
变量。