wordpress - Timber + Gutenberg ACF Blocks 不渲染前端
问题描述
这是我在 Timber Site 类上扩展的类。
<?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 文件。在管理面板中,使用古腾堡编辑器一切正常。但在前端,帖子内容无法正常工作/呈现。
有什么帮助吗?谢谢。
输出如下:
解决方案
好的。我刚刚发现问题出在哪里。我正在使用post.post_content
来自 twig 的变量。
显然那不是一个包含最终内容的变量。
供有类似问题的人将来{{post.content}}
参考:使用变量。
推荐阅读
- pdf - 使用 PDFBox 将图像作为图标添加到 PDF 文档
- node.js - Nginx Nodejs Rest API Endpoints 返回 404
- javascript - 如何正确地将索引签名添加到对象
- google-cloud-platform - 如果 Google Cloud SQL 只读副本出现故障会怎样?
- c# - 在 Windows 中安装应用程序时,如何使一个安装程序依赖于另一个安装程序?
- julia - 我在哪里可以找到 Julia 中的缺失函数?
- php - sql命令无法使用php mysqli
- cors - WebAPI 项目响应标头中缺少 Access-Control-Allow-Origin
- c# - 显示 ComboBoxItem 的工具提示 - 移动鼠标后有效,但第一次尝试时无效
- r - Sorting a vector in R without using sort function