Как в админке WordPress дублировать уже заполненные кастомные поля ACF?

Ссылка скопирована
1 ответ

Всем привет. В Wordpress с помощью ACF реализованы кастомные поля с большой вложенностью (пример на скрине)

Как в админке Wordpress дублировать уже заполненные кастомные поля ACF?

Внутренних полей "Вкладка" можно создавать неограниченное кол-во. Вопрос: можно ли в админке дублировать только поле "Вкладка" со всеми вписанными в неё данными? Попробовал разные плагины, в них получается дублировать только самое верхнее поле (на примере это поле называется "Продаем", внутри которого находится "Вкладка").

Дополнительно:

Здравствуйте. Можете подробнее описать задачу? Хотел бы помочь, но пока запутался что именно надо скопировать и с какой целью.

  • Николай Миронов, благодарю за ответ, только что чисто случайно нашёл решение
  • Чисто случайно понял как это сделать. Нужно, находясь в фокусе нужного поля, зажать Shift и тогда иконка "+" для создания нового поля становится иконкой "Дублировать"

    Вот как это выглядит

    Как в админке Wordpress дублировать уже заполненные кастомные поля ACF?

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Игорь Волков Ответ

    Если речь про ACF Repeater/Flexible Content, то дублирование “одной вкладки” со всеми вложенными данными зависит от версии ACF и от того, как именно построено поле. В новых версиях ACF у строк repeaters обычно есть кнопки управления строкой: добавить, удалить, свернуть и иногда duplicate. Но если поле сильно вложенное или используется старый ACF, встроенного удобного копирования может не быть.

    Самый безопасный вариант — не копировать данные через базу, а использовать штатные действия в админке ACF: наведите на строку повторителя, откройте управление строкой справа и проверьте, есть ли действие Duplicate. Если оно есть, дублируется именно строка повторителя со всеми подполями, а не весь верхний блок.

    Если кнопки нет, есть три пути:

    • обновить ACF до актуальной версии и проверить, появилась ли функция дублирования строк;
    • поставить небольшой аддон для ACF, который добавляет clone/duplicate для repeater rows;
    • сделать технический импорт/экспорт значения поля через PHP, но это уже не “кнопка в админке”.

    Для сложных повторителей важно понимать, что ACF хранит данные в postmeta не одним JSON, а множеством строк с ключами вида field_... и индексами. Поэтому ручное копирование через SQL легко ломает структуру. Если нужно массово дублировать блоки, лучше писать отдельный скрипт через get_field() и update_field():

    $rows = get_field('cat_list', $post_id);
    if (is_array($rows) && isset($rows[0])) {
        $rows[] = $rows[0]; // дублируем первую строку повторителя
        update_field('cat_list', $rows, $post_id);
    }

    $rows = get_field('cat_list', $post_id); if (is_array($rows) && isset($rows[0])) { $rows[] = $rows[0]; // дублируем первую строку повторителя update_field('cat_list', $rows, $post_id); }

    Итог: для ручной работы ищите duplicate именно на строке repeater/flexible content. Для массовой операции используйте PHP через API ACF, а не прямую правку базы.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно