在不同的服务器(ACF + Gutenberg + Timber)上不渲染块

时间:2019-10-04 09:58:19

标签: php wordpress advanced-custom-fields wordpress-gutenberg

我在块渲染方面遇到问题。

我使用的是ACF + Timber + Gutenberg。

在localhost上创建块不是问题,一切都显示在wp-admin端和前端(在Linux,PHP 7.219,nginx上创建)

在Windows +最新的XAMPP(PHP 7.39,apache)上进行测试安装后,结果发现这些块无法渲染(在wp-admin和前端站点上都看不到它们)。

这就是为什么我将其放在Raspberri Pi(PHP 7.120,apache)上并正常启动的原因。我认为这可能是Windows和某些服务器设置的问题。但是,当安装在普通的Web服务器(Linux,PHP 7.0.33,apache)上时,也不起作用。

有人知道不渲染图块的原因是什么吗?


在以下函数中,根本不输入回调(text_block_render_callback),但是寄存器块起作用。

add_action('acf/init', 'register_block_text');
function register_block_text() {
    acf_register_block(array(
        'name' => 'text',
        'title' => ('Tekst', 'ABC'),
        'description' => ('Moduł zwykłego tekstu', 'ABC'),
        'render_callback' => 'text_block_render_callback',
        'category' => 'test-blocks',
        'icon' => 'edit',
        'keywords' => array('blog'),
        'mode' => 'edit',
        'enqueue_assets' => function() {
            wp_enqueue_style( 'block-text', get_stylesheet_directory_uri() . '/dist/blocks/text/text.css');
        }
    ));
}

function text_block_render_callback($block, $content = '', $is_preview = false)
{
    $context = Timber::context();

    $context['block'] = $block;
    $context['fields'] = get_fields();
    $context['is_preview'] = $is_preview;

    Timber::render(TEMPLATEPATH . '/views/blocks/text/text.twig', $context);
}

工作-相同的代码

https://i.imgur.com/lPpMgsj.png(wp-admin)

https://i.imgur.com/enq6OKA.png(前端)


不工作-相同的代码

https://i.imgur.com/RoccMVk.png(wp-admin /视图)

https://i.imgur.com/qOf1had.png(wp-admin /编辑)

https://i.imgur.com/7wTbw1H.png(前端)

1 个答案:

答案 0 :(得分:0)

我不知道你是否解决了这个问题。我使用本地,并且遇到相同的问题。

我总是这样:

Timber::render( get_stylesheet_directory() . "/views/block-editor/content-{$slug}.twig", $context );

但是在某些服务器(和本地的新版本5.x)中不起作用

我现在使用:

Timber::render( "block-editor/content-{$slug}.twig", $context );