https://developer.wordpress.org/resource/dashicons/
https://www.advancedcustomfields.com/resources/acf_register_block_type/
<?php
// Регистрация ACF Block
function acf_register_blocks() {
// Блок 1
if( ! function_exists( 'acf_register_block_type' ) )
return;
acf_register_block_type( array(
'name' => 'block-hidden',
'title' => __('Скрывающийся блок'),
'description' => __(''),
'render_template' => 'template-parts/blocks/block-hidden.php',
'category' => 'common',
'icon' => 'hidden',
));
// Блок 2
if( ! function_exists( 'acf_register_block_type' ) )
return;
acf_register_block_type( array(
'name' => 'block-how-to-work',
'title' => __('Этапы работы'),
'description' => __(''),
'render_template' => 'template-parts/blocks/how-to-work.php',
'category' => 'common',
'icon' => 'hidden',
));
}
add_action('acf/init', 'acf_register_blocks' );
// title (строка): отображается в редакторе как метка блока с возможностью поиска
// description (необязательная строка): описывает назначение блока
// icon (необязательный элемент Dashicon или JSX): значок, связанный с блоком
// category (строка): где блок появляется в диалоговом окне Add blocks
// keywords (необязательный массив): до трех ключевых слов, используемых при поиске блоков
// attributes (необязательный объект): обрабатывает данные динамического блока
// edit (функция): функция, которая возвращает разметку для отображения в редакторе
// save (function): функция, которая возвращает разметку, которая будет отображаться на внешнем интерфейсе
// useOnce (необязательный логический): запретить добавление блока более одного раза
// support (необязательный объект): определяет поддерживаемые блоком функции
// Варианты параметра "category":
// common
// formatting
// layout
// widgets
// embed
// Вызываемый код для блока в случае с render_callback
function my_testimonial_block_html() {
// vars
$testimonial = get_field('testimonial');
$author = get_field('author');
$avatar = get_field('avatar');
?>
<blockquote class="testimonial">
<p><?php echo $testimonial; ?></p>
<cite>
<img src="<?php echo $avatar['url']; ?>" alt="<?php echo $avatar['alt']; ?>" />
<span><?php echo $author; ?></span>
</cite>
</blockquote>
<?php
}
<?php
//Альтернативный вариант
if( function_exists('acf_register_block') ) {
$result = acf_register_block(array(
'name' => 'testimonial',
'title' => __('Testimonial'),
'description' => __('A custom testimonial block.'),
'render_callback' => 'my_testimonial_block_html', // Если вызываем исполняемый код через function.php
'render_template' => 'template-parts/blocks/testimonial/testimonial.php', //Если вызываем исполняемый код из файла. Рекомендуется.
//'category' => '',
//'icon' => '',
//'keywords' => array(),
));
}