Можете ли вы изменить тип блока Гутенберга с помощью функции acf_register_block ACF Pro? - PullRequest
1 голос
/ 13 марта 2020

Я некоторое время искал способ изменить один тип блока на другой с помощью функции acf_register_block ACF, и я врезался в стену.

Мне интересно, возможно ли это, согласно документация ACF «Любой аргумент из функции JavaScript registerBlockType () также может быть использован». (Источник: документы ACF, acf_register_block_type в разделе "$ settings").

Насколько я понимаю, я должен иметь возможность использовать опцию "собственных" преобразований "Wordpress, чтобы иметь возможность конвертировать мой блок введите другой, аналогичный, тип блока. Источник: WP Block API - Регистрация блоков

Я хочу преобразовать два типа блоков с одинаковыми полями - часто задаваемые вопросы со стилизацией в / из часто задаваемых вопросов без стилизации. Ниже приведен мой код, содержащийся в моих функциях. php file.

// faq
    acf_register_block(
      array(
        'name'        => 'faq',
        'title'       => __('FAQ Section'),
        'description'   => __('A custom FAQ block.'),
        'render_callback' => 'my_acf_block_render_callback',
        'category'      => 'faqs',
        'icon'        => 'editor-table',
        'keywords'      => array( 'faq', 'faqs' ),
      )
    );

    // faq no style
    acf_register_block(
      array(
        'name'        => 'faq_no_style',
        'title'       => __('FAQ Section No Styles'),
        'description'   => __('A custom FAQ block.'),
        'render_callback' => 'my_acf_block_render_callback',
        'category'      => 'faqs',
        'icon'        => 'editor-table',
        'keywords'      => array( 'faq_no_style', 'faqs' ),
      )
    );

У кого-нибудь есть какие-либо сведения о том, возможно ли это? Есть ли способ создать блоки через JavaScript, используя поля ACF? Я использую последние версии Wordress и ACF.

Я попытался без удачи:

// faq
    acf_register_block(
      array(
        'name'        => 'faq',
        'title'       => __('FAQ Section'),
        'description'   => __('A custom FAQ block.'),
        'render_callback' => 'my_acf_block_render_callback',
        'category'      => 'faqs',
        'icon'        => 'editor-table',
        'keywords'      => array( 'faq', 'faqs' ),
        'transforms' => array(
          'to' => array(
            'transform' => function() {
              print_r("test");
            },
          )
        )
      )
    );

1 Ответ

0 голосов
/ 16 марта 2020

Я только что проверил исходный код ACF PRO 5.8.8 и похоже, что acf_register_block_type не поддерживает transforms. Блоки ACF очень полезны, но, к сожалению, они еще не так гибки. Но, может быть, вы можете добавить поле, в котором вы указываете различные типы вашего блока, и соответственно добавить другой класс css в шаблон и стиль блока? Вот как я обычно это делаю.

...