Spintax

Генерация контента для WordPress — spintax-разметка с привязкой к полям ACF, post-meta и описаниям товаров WooCommerce.

Доступно в: WordPress.org GitHub
Сайт проекта →

Spintax — набор инструментов для генерации контента в WordPress: один шаблон превращается в уникальный, не дублирующийся текст по всему сайту. Создавайте переиспользуемые шаблоны на spintax-разметке, а затем встраивайте их через шорткоды и PHP — или привязывайте к полям ACF, post-meta и полям товаров WooCommerce, чтобы каждая подходящая запись получала свой отрендеренный вариант при сохранении, по расписанию или по требованию.

Разметка

  • Перечисления{a|b|c} выбирает один вариант случайно, с вложенностью
  • Перестановки[<config>a|b|c] берёт N элементов, перемешивает и склеивает своими разделителями
  • Переменные%var% в глобальной области, области шорткода и локальной: #set перевыбирается при каждом использовании, #def выбирается один раз на рендер
  • Условия{?VAR?then|else} ветвится по значению переменной, {?!VAR?then} инвертирует проверку
  • Согласование множественного числа{plural N: one|few|many} подбирает грамматически верную форму по числу (RU/UK/BE и SR/HR/BS — три формы, английский тип — две)
  • Вложенные шаблоны — один шаблон внутри другого через #include или [spintax]
  • Блочные комментарии/#…#/ не попадает в вывод

Привязки к ACF и post-meta

Привязка соединяет шаблон с одним целевым полем одного типа записей — например «Записи → ACF: hero_subtitle» — и плагин заполняет это поле у каждой подходящей записи. Ручные правки по умолчанию сохраняются и отслеживаются по хешу; флаги решают, только ли заполнять пустые поля, перегенерировать при каждом сохранении или очищать поле, когда шаблон отрендерился в пустоту.

  • Bulk Apply — асинхронные проходы порциями через Action Scheduler, с синхронной кнопкой «Run now» и запасным вариантом через WP-CLI, если планировщик не установлен
  • Логи — запись по каждому проходу: что записано, что пропущено, что очищено
  • WP-CLIwp spintax bindings list|apply|test|export|import для переноса со стейджинга в продакшен
  • Миграция — разовый мастер для тех, кто переходит с nested-spintax-for-acf

WooCommerce

На странице отдельного товара плагин определяет текущий товар и отдаёт его шаблону как %product_name%, %product_sku%, %product_type%, %product_categories%, %product_tags% и по одному %product_attribute_<slug>% на каждый атрибут — поэтому один шаблон, встроенный в два товара, даёт два отдельных закешированных варианта. Цена намеренно не отдаётся: это изменчивые коммерческие данные, и их попадание в шаблон сбрасывало бы кеш рендера при каждом изменении цены.

Привязка к полю товара идёт дальше и записывает сгенерированный текст в описание или краткое описание товара — тем же механизмом, что и привязки ACF: расписание, Bulk Apply, WP-CLI, логи. Три ограничения сделаны намеренно: записываемых полей только два, ручные правки по умолчанию побеждают, а любая запись идёт через саму WooCommerce, чтобы её кеши, таблицы поиска и хуки сохранения оставались согласованными. WooCommerce везде необязательна: без неё переменные просто не появляются, а привязки к товарам перестают писать.

Кеш и приватность

Отрендеренный результат кешируется через WP Object Cache API (готов к Redis / Memcached), с необязательной перегенерацией по расписанию для каждого шаблона. Всё работает на вашем сервере — никаких внешних сервисов, никакой слежки, никакие данные не покидают сайт.

Один синтаксис, пять движков

Синтаксис — открытый документированный стандарт. Его ядро совместимо с GTW — перечисления, перестановки, переменные, включения — и годами дополнялось собственными примитивами: условия по значению, согласование множественного числа, переменные #def с однократным выбором. Пять независимых движков реализуют его по одному общему корпусу тестов, полный справочник — на spintax.net. Для работы вне админки WordPress есть Spintax Studio — бесплатный нативный редактор для Windows с двухпанельным живым предпросмотром и встроенной проверкой.