Я использую PODS (pods.io) и на его примере расскажу как это делается. В ACF всё аналогично.
1. Создаём место где будем хранить информацию о блоках (Pods Admin > Add New > Create New > Custom Taxonomy):
2. Не забываем настроить где это будет в админке (Admin UI > Menu Location > Add a submenu item to Settings menu):
3. В получившуюся таксономию добавляем блоки:
4. Создаём страницу с настройками (Pods Admin > Add New > Create New > Custom Settings Page):
5. На этой странице нам нужно одно поле, назовём его Blocks:
Не забываем в Additional Field Options указать тип Multiple Select и формат List view.
6. На странице настроек заполняем поле Blocks блоками из кастомной таксономии:
Далее работаем с шаблоном, например так:
<?php
$homepage_blocks = get_option('homepage_test_blocks');
foreach ($homepage_blocks as $block) {
$term = get_term_by('term_taxonomy_id', $block, 'homepage_blocks');
$slug = $term->slug;
$file_name = $slug . '.php';
echo $file_name;
}
Результат:
homepage-work.php
homepage-slider.php
homepage-test.php
Есть ещё несколько способов как это всё сделать, но они со своими нюансами, например: можно не использовать дополнительную таксономию, а прописать все значения руками в поле типа "Relationship > Simple", но тогда могут быть проблемы с ручной сортировкой блоков. Или сделать для каждого блока отдельное поле, на подобии "Позиция #1" > и сделать выбор из списка, какой блок в ней будет. И т.д.