首页 > 解决方案 > Timber Gutenberg Block - 动态回调函数

问题描述

我在我的functions.php中得到了这个,对于每个新块,我目前正在添加另一个单独的函数。

我不太确定如何使这个动态化,所以我只有一个功能。

函数.php

    function my_acf_block_render_callback( $block ) {
    $context = Timber::get_context();

    // Store block values.
    $context['block'] = $block;

    // Store field values.
    $context['fields'] = get_fields(); 

    // Render the block.
    Timber::render( 'block/bulma-card-block.twig', $context );
}

我得到了这些我注册为块的文件:

  • bulma-card-block.twig
  • bulma-tag-block.twig
  • bulma-other-block.twig
  • ...

    标签: phpwordpresstwigtimberwordpress-gutenberg

    解决方案


    根据描述 ACF 块功能的博客文章,该$block变量包含name键下块的名称。

    这意味着您可以使用该名称来选择要动态呈现的 Twig 模板:

    function my_acf_block_render_callback( $block ) {
        $slug = str_replace( 'acf/', '', $block['name'] );
    
        $context = Timber::get_context();
    
        // Store block values.
        $context['block'] = $block;
    
        // Store field values.
        $context['fields'] = get_fields(); 
    
        // Render the block.
        Timber::render(
            'block/bulma-' . $slug . '-block.twig',
            $context
        );
    }
    

    推荐阅读