MediaCG
MediaCG / Плагіни / Herocraft

Herocraft

Головні зображення в одному точному розмірі: кадрування, фото цілим на розмитому фоні, колажі й круглі деталі з безпечними зонами теми та соцмереж, SEO-назви файлів, alt-текст і підпис зображення.

Опис

Herocraft додає кнопку «Підготувати головне зображення» на панель «Зображення запису» в блоковому редакторі. Автор складає картинку прямо там; сервер збирає один JPEG у заданому розмірі (за замовчуванням 1600×900) і встановлює його головним зображенням.

  • Макети: одне фото, фото цілим на власному розмитому фоні, два (рівні, велике зліва, велике справа), три (рівні, велике зліва, велике справа), фото з однією чи двома круглими деталями поверх.
  • Фото цілим на розмитому фоні: для вертикальних і майже квадратних фото — фото видно повністю, а порожні поля заповнені тим самим фото, розмитим і затемненим (сила, яскравість і необов'язкова тінь — у налаштуваннях). Збільшення масштабу звужує видиму частину, доки фото не заповнить кадр.
  • Кадрування перетягуванням, масштаб коліщатком або повзунком; позначка попереджає, коли мале фото доводиться збільшувати.
  • Безпечні зони: контури показують, де обріже картинку активна тема (її розміри з кадруванням визначаються автоматично), прев'ю в соцмережах (1.91:1) і Google (4:3, 1:1).
  • Фото звідусіль: з Медіатеки, перетягуванням з комп'ютера або вставкою з буфера обміну (кнопкою чи Ctrl+V).
  • Дбайливе масштабування: Imagick з передискретизацією Lanczos і підвищенням різкості (з GD як запасним варіантом).
  • SEO-назва файлу із заголовка запису (кирилиця транслітерується за національним стандартом України), alt-текст і підпис зображення («Фото: ДСНС», «Фото ілюстративне»), що зберігається в поля «Підпис» і «Опис» зображення: тема показує його під головним зображенням, а блок у тексті має той самий підпис. Якщо поле порожнє — береться підпис вибраного фото.
  • Вставка в текст (налаштовується для кожного сайту, за замовчуванням вимкнена): зображення додається в статтю блоком «Зображення» після абзацу N — для тем, що ховають головне зображення в записі; повторне створення замінює цей блок. Вмикається в налаштуваннях: «Фото в тексті».
  • Редагування композиції: макет, фото й кадрування зберігаються, тож зображення можна відкрити й змінити пізніше.
  • Мітка ШІ (IPTC): для зображень, створених або відредагованих генеративним ШІ, у файл записується стандартна мітка IPTC Digital Source Type (XMP), за якою Google та інші сервіси розпізнають ШІ-зображення. Мітка зберігається в усіх розмірах, які створює WordPress (JPEG і WebP).
  • Сумісний із плагінами вивантаження й оптимізації: результат додається стандартним завантаженням медіа.
  • Мітка ШІ не губиться в Imagify: Imagify під час конвертації у WebP прибирає всі метадані, тож його копії «file.jpg.webp» втрачають мітку IPTC. Herocraft повертає мітку в кожен такий WebP позначеного зображення (оригінал, -scaled і всі розміри), додаючи заголовок VP8X і чанк XMP, — саме зображення не перекодовується, файл більшає приблизно на 0,5 КБ. Працює після оптимізації Imagify, щодня як страховка і через WP-CLI: wp herocraft webp-xmp [--id=<attachment>] [--dry-run]. Кожен новий файл перевіряється перед заміною; проблеми видно на сторінці налаштувань.

REST API

POST /wp-json/herocraft/v1/compose створює зображення, додає його в Медіатеку й повертає дані. Працює з блокового редактора і зі скриптів через Application Passwords (Basic auth, без nonce); користувачу потрібні права upload_files і edit_post на запис.

Запит (JSON):

  • post_id (обов'язково), layout (обов'язково): single, fit_blur, two-equal, two-big-left, two-big-right, three-equal, three-big-left, three-big-right, circle-right, circle-left, circles-right (лише ввімкнені в налаштуваннях).
  • cells (обов'язково): по одному елементу на частину макета, { "id": 123, "zoom": 1, "cx": 0.5, "cy": 0.5, "crop": { "x": 0, "y": 0, "w": 1, "h": 1 } }. crop — видима частина джерела в частках (0–1); для fit_blur його можна не передавати — тоді береться все фото.
  • title, alt (необов'язково): заголовок для назви файлу, alt-текст.
  • caption (необов'язково): підпис зображення саме так, як він має виглядати, напр. «Фото: ДСНС» або «Фото ілюстративне». Зберігається в «Підпис» і «Опис» зображення та використовується під зображенням у тексті. Порожній рядок — без підпису.
  • source (необов'язково, для старих інтеграцій): використовується лише без caption — підпис стає «<мітка> <джерело>», напр. «Фото: ДСНС» (мітка мовою сайту).
  • Якщо не передано ні caption, ні source, береться підпис першого вибраного фото з Медіатеки.
  • digital_source_type (необов'язково): мітка ШІ IPTC, що записується у файл як XMP Iptc4xmpExt:DigitalSourceType — trainedAlgorithmicMedia (зображення повністю створене генеративним ШІ) або compositeWithTrainedAlgorithmicMedia (справжнє фото, відредаговане генеративним ШІ). У файл пишеться повний URI IPTC (http://cv.iptc.org/newscodes/digitalsourcetype/…), мітка є в усіх розмірах WordPress (JPEG і WebP) і в метаполі _herocraft_digital_source_type. Порожньо або не передано — без мітки; інше значення — HTTP 400.
  • featured (необов'язково, за замовчуванням true): зробити зображення головним для запису.
  • insert (необов'язково): вставити зображення в текст блоком «Зображення» після абзацу N з налаштувань (true) чи ні (false); якщо не передано — вирішує налаштування сайту «Фото в тексті» (за замовчуванням вимкнено). Блок, вставлений Herocraft раніше, замінюється.

Відповідь: attachment_id (також як id), url (повний розмір), width, height, alt, caption, caption_from (caption, source, photo або порожньо), digital_source_type, file, upscale (збільшення для кожної частини), featured (bool), placed (inserted, replaced, present, noplace або порожньо, якщо вставку не просили).

Приклад: curl -u editor:APP_PASSWORD -H "Content-Type: application/json" -d '{"post_id":42,"layout":"fit_blur","cells":[{"id":123}],"insert":false}' https://example.com/wp-json/herocraft/v1/compose

Встановлення

  1. Завантажте плагін і активуйте його.
  2. Відкрийте MCG Plugins → Herocraft, щоб задати розмір, макети, безпечні зони, шаблони назви файлу й alt-тексту.
  3. У редакторі запису відкрийте панель «Зображення запису» й натисніть «Підготувати головне зображення».

Питання та відповіді

Чи змінює плагін наявні зображення?

Ні. Кожен результат — нове зображення в Медіатеці.

Яка графічна бібліотека використовується?

Imagick, якщо доступна, інакше GD.

Список змін

Список змін ведеться англійською.

1.7.0 (2026-10-19)

  • «Image in the text» is now an explicit per-site switch, off by default: the created image goes into the post text (after paragraph N) only on sites where it is turned on in the settings. Until 1.7.0 every site inserted it after paragraph 1 unless it was set to 0 — after the update turn it on again where it is needed.

1.6.0 (2026-10-15)

  • The AI label (XMP Iptc4xmpExt:DigitalSourceType) is kept in the WebP copies Imagify creates without metadata: after Imagify optimises a labelled image, daily for all labelled images, and with wp herocraft webp-xmp. Only RIFF chunks are rearranged (VP8X + XMP), the image is not re-encoded; every file is verified before replacement and problems are shown on the settings page.
  • WebP copies made by WordPress go through the same checked writer.

1.5.1 (2026-10-15)

  • The «MCG Plugins» menu is now at the top of the admin menu, right under the Dashboard.
Старіші версії (7)

1.5.0 (2026-10-15)

  • AI label: the IPTC Digital Source Type (trainedAlgorithmicMedia or compositeWithTrainedAlgorithmicMedia) is written into the image as XMP, so Google and other services recognise AI images. Set it in the editor («AI label (IPTC)») or with the new REST parameter digital_source_type; it is kept in every size WordPress makes (JPEG and WordPress' WebP copies, also after regenerating thumbnails), saved in _herocraft_digital_source_type and in the composition, so «Edit composition» keeps it.

1.4.0 (2026-10-15)

  • One field for the caption: «Photo source» in the editor is now «Image caption» — authors type the whole caption («Photo: City Council», «Illustrative photo»). It is saved as the image Caption and Description, so it shows under the featured image (theme) and under the Image block in the text.
  • The caption is filled from the chosen photo's own caption when empty — in the editor and in REST calls without caption/source.
  • REST: caption is the main parameter; source still works for older callers; the response tells where the caption came from (caption_from).
  • «Edit composition» reopens with the saved caption (older compositions: «<credit label> <source>»).

1.3.1 (2026-10-14)

  • Fix: the photo credit label is translated — a Ukrainian site gets «Фото: …» instead of «Photo: …», also for REST calls without the editor (the site language is used, not the user's). Settings saved with the old untranslated default follow the site language too.
  • REST compose: new optional caption — the exact caption («Illustrative photo»), overriding the «<label> <source>» template; an empty string means no caption.

1.3.0 (2026-10-14)

  • New layout «Whole photo on blurred background» (fit_blur): the photo is shown whole (contain) over the same photo blurred and darkened; zoom narrows the visible part up to a full-frame crop. Blur strength, background brightness and an optional soft shadow in MCG Plugins → Herocraft; enabled by default (also on sites with saved settings).
  • REST compose: the response has attachment_id, url, width, height; without the editor the server now sets the featured image (featured, default true) and puts the image into the text per the settings, overridable per call with insert (true/false). Works with Application Passwords. Documented in the readme.
  • The editor itself still sets the featured image and the block in the text, so nothing changes for authors.

1.2.0 (2026-10-12)

  • Updates now come from the MEDIA CONTENT GROUP update server (mediacg.org): new versions show up in Plugins → Updates like any other plugin, with «View details» and auto-updates.
  • Plugin URI and Author URI point to mediacg.org.

1.1.0 (2026-10-06)

  • Layouts with one or two round detail photos (ring and soft shadow, inside the safe zones).
  • Photos can be dropped from the computer or pasted from the clipboard (button in every empty part and in the sidebar, or Ctrl+V).
  • The created image can be inserted into the post as an Image block after paragraph N; regenerating replaces it.
  • All safe zones shown by default; clearer labels (Theme, Facebook / social, Google 4:3, Google 1:1); near-identical theme ratios merged into the stricter one.
  • The photo credit caption always uses the site language.
  • One reused media frame instead of a new one per pick; visible separators in layout thumbnails.
  • Settings moved under the shared «MCG Plugins» menu; new icon.

1.0.0

  • First release.

Версії

Версія
1.7.0 (поточна)
1.6.0
1.5.1
1.5.0
1.4.0
1.3.1
1.3.0
1.2.0

Плагіни на сайтах оновлюються самі: нова версія з’являється в Консоль → Оновлення протягом ~12 годин або одразу після «Перевірити знову».

Плагіни поки що використовуються лише на сайтах MediaCG і партнерів та публічно не поширюються. Якщо вас цікавить плагін — напишіть нам: [email protected].