Как привязать доп поле к всем страницам либо шаблону что бы не заполнять?
В общем есть один блок на сайте, сформирован на acf
и он должен выводиться почти на всех страницах
если подвязываю эту группу с полем к нужным страницам или шаблону, то на каждой странице его нужно заполнять постоянно , а это геморрой
я хочу его в одном месте или на одной странице заполнить, и что бы этот блок выводился на остальных нужных страницах
К чему и как его правильно подвязать?
Дополнительно
Вы можете установить значение по умолчанию
там в основном блоки с повторителем
Иван Медведев @mediol-name Wordpress Developer Попробуй этот блок вывести в Options, там раз заполни и от туда тяни данные по всему сайту, куда заблагорассудится.
- Можно подробнее? как это вывести в Options? у меня нет там Options
или я не туда смотрю? -
- Иван Медведев, Спасибо
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос


Если один и тот же ACF-блок должен выводиться почти на всех страницах, не привязывайте его поля к каждой странице отдельно. Это приведет к дублированию данных: один и тот же контент придется заполнять много раз, а при изменении блока придется обходить все страницы. Правильный вариант — хранить общие данные в одном месте, а в шаблонах только читать их и выводить там, где нужно.
Если у вас ACF Pro, самый удобный путь — Options Page. Вы создаете отдельную страницу настроек в админке, привязываете к ней группу полей, один раз заполняете повторитель или другие поля, а потом получаете эти значения через get_field с параметром option.
add_action('acf/init', function () { if (! function_exists('acf_add_options_page')) { return; } acf_add_options_page([ 'page_title' => 'Глобальные блоки', 'menu_title' => 'Глобальные блоки', 'menu_slug' => 'global-blocks', 'capability' => 'edit_posts', 'redirect' => false, ]); });
После добавления кода в админке появится пункт Глобальные блоки. В настройках группы ACF нужно выбрать правило показа: Options Page равно Глобальные блоки. Тогда повторитель будет заполняться не на каждой странице, а один раз в общей настройке.
Пример вывода обычного поля:
$block_title = get_field('block_title', 'option'); if ($block_title) { echo esc_html($block_title); }
Пример вывода повторителя из Options Page:
if (have_rows('block_items', 'option')) { echo '<ul>'; while (have_rows('block_items', 'option')) { the_row(); $title = get_sub_field('title'); if ($title) { echo '<li>' . esc_html($title) . '</li>'; } } echo '</ul>'; }
Если на некоторых страницах нужно иметь свое значение, а на остальных брать общее, сделайте fallback. Сначала пробуйте получить поле текущей страницы, а если оно пустое, берите значение из option.
$items = get_field('block_items'); if (empty($items)) { $items = get_field('block_items', 'option'); }
Для вашего случая лучше Options Page: один раз создаете группу с повторителем, один раз заполняете блок в настройках, затем выводите его в нужных шаблонах. Если блок должен быть почти везде, условие показа лучше держать в шаблоне: например не выводить на корзине, оформлении заказа, странице благодарности или других исключениях. Так данные остаются едиными, а логика показа управляется кодом, без ручного копирования по страницам.