Миграция терминов таксономии

Термины представляют из себя отдельные сущности, которые подключаются к родительской entity в виде term reference. Потому классический подход — это отдельная предварительная миграция терминов, а потом подключение их, используя migration_lookup плагин.

Но на практике, вы скорее всего будет иметь термины в виде текстовых меток. И вам удобнее будет обработать их «на лету», без дополнительной отдельной миграции.

Именно для этого я и написал небольшой миграционный обработчик, который преобразует текстовую метку в ссылку на термин (создаёт или находит существующий).

Вот код этого process plugin:

Он принимает $value (метку термина) и возвращает массив [‘target_id’ => TERMID].

В настройках можно указать в какой словарь должен попадать термин (destination_bundle).

Примеры использования в миграции:

В первом случае (field_blog_category) читается одиночный термин категории (category). Во втором — (field_blog_tag) список тегов, разделенных запятыми. При этом используется т.н. pipeline, где на первом шаге строка разбивается стандартным плагином explode, а дальше каждый термин передаётся в наш процессор term_generate.

Разместите данный плагин в вашем модуле (/src/Plugin/migrate/process), и сбросьте кеш, чтобы Drupal его зарегистрировал.

Написать комментарий

Мало букафф? Читайте есчо !

Drupal migration из CSV файла

Март 1, 2024 г.

API миграции в Drupal позволяет "тащить" данные из разных источников, но работает это на базе контрибных модулей, т.е. не из коробки. Например, модуль migrate_source_csv добавляет возможность добавить CSV файл как источник данных. Создание каких ...

Читать

Создание параграфов из CSV файла

Февраль 27, 2024 г.

Параграфы, оторванные от родительской entity нам не нужны, потому эта миграция является дочерней к рассматриваемому примеру миграции статей блога из CSV. Из всего набора полей источника нам требуется только два поля - это id и body. migrate_plus.migration.custom_text_to_paragraph.yml ...

Читать

 

Комментарии к «Миграция терминов таксономии»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: