Для дублирования уже заполненных кастомных полей ACF в админке WordPress, вам понадобится использовать функцию acf_duplicate_field()
.
Функция acf_duplicate_field()
предоставляет возможность создавать дубликаты полей, включая их значение. Она принимает два аргумента: исходное поле и новую необязательную группу полей, которой будет принадлежать дубликат.
Чтобы дублировать уже заполненные кастомные поля ACF, вам нужно выполнить следующие шаги:
1. Откройте файл functions.php
вашей темы WordPress.
2. Добавьте следующий код:
function duplicate_acf_field($post_id) { $fields = get_field_objects($post_id); // Получить все поле ACF для данного поста foreach($fields as $field_key => $field_value) { $field = get_field_object($field_key, $post_id); // Получить объект конкретного поля $new_field = acf_duplicate_field($field); // Создать дубликат поля update_field($field['name'], $new_field, $post_id); // Обновить значение нового дубликата поля } } // Передать дубликат поля после сохранения поста add_action('acf/save_post', 'duplicate_acf_field', 20);
Этот код определяет функцию duplicate_acf_field()
, которая получает все поля ACF для конкретного поста, создает дубликат каждого поля с использованием функции acf_duplicate_field()
и обновляет значения новых дубликатов полей с использованием функции update_field()
.
Также в коде используется хук acf/save_post
, который запускает функцию duplicate_acf_field()
после сохранения поста. Это гарантирует, что дубликаты полей будут созданы каждый раз при сохранении поста.
После добавления этого кода в functions.php
в вашей теме, при сохранении поста все кастомные поля ACF будут дублироваться и их значения будут сохраняться в новых дубликатах полей. Это позволит вам создавать копии полей с уже заполненными значениями в админке WordPress.