Как зарегистрировать блоки ACF
Для начала вам необходимо создать плагин. Переходим в папку plugins на FTP своего сайта. И создаем там папку с любым названием. В новой папке создаете php-файл с тем же названием. Например, я создал папку с названием “acf-gut-blocks-zeeoff” и в ней файл “acf-gut-blocks-zeeoff.php”.
Далее в папке “acf-gut-blocks-zeeoff” создаем папку “assets”. В ней мы в будущем будем хранить наши блоки.
Также можно создать папки “css” и “js”, чтобы можно было грузить стили и скрипты для корректного отображения ваших блок на странице редактора. Но это совсем необязательно.
Внутри папки “assets” я создал папку “blocks”. И уже в папке “blocks” мы размещаем наши блоки.
Внутри папки “blocks” создаем папку с названием нашего первого блока. У меня он называется “price-table-block”. И внутри новой папки создаем файл “price-table-block.php”.
Структура папок нашего плагина создана. Теперь можно приступить к регистрации блоков.
Возвращаемся к файлу “acf-gut-blocks-zeeoff.php”. Вставляем туда следующий скрипт:
'Price_Table',
'title' => __('Price Table'),
'description' => __('A price table block'),
'render_template' => plugin_dir_path( __FILE__ ) . 'assets/blocks/price-table-block/price-table-block.php',
'category' => 'formatting'
));
}
add_action( 'acf/init', 'sajt_pod_klyuch_register_blocks' );
Создание группы полей для блока ACF
Отлично. Мы зарегистрировали новый блок. Теперь нам необходимо создать для него группу полей. Должно получиться следующее:
И не забываем про настройку условий отображения. Выбираем из выпадающего списка «Блок» и название блока, который вы создали.
Верстка блока ACF и его вывод
Мы зарегистрировали новый блок и создали для него группу полей. Осталось еще немного. Нужно сверстать сам блок и вывести поля.
Мы создавали папку «price-table-block» и файл «price-table-block.php». Открываем этот файл и вставляем следующее:
Что примечательно, на страницу можно добавить несколько таких блоков, а благодаря их уникальным ID вкладки первого блока не будут переключать содержимое второго блока.
Как добавить еще блоков?
Просто повторяйте описанные в статье действия от начала и до конца. Если вы хотите добавить еще 1 блок, переходим к файлу «acf-gut-blocks-zeeoff.php» и дублируем эту конструкцию:
// Регистрация блока - Цены
acf_register_block_type(array(
'name' => 'Price_Table',
'title' => __('Price Table'),
'description' => __('A price table block'),
'render_template' => plugin_dir_path( __FILE__ ) . 'assets/blocks/price-table-block/price-table-block.php',
'category' => 'formatting'
));
Понятное дело, нужно переименовать блок, создать для него новую папку в «blocks», а также группу полей в самом ACF.