• Docs
        • Документация OnPress v2
            • Документация OnPress v2
              • Как устроена платформа
              • Быстрый старт
              • Доступ, роли и выбор сайта
                • Страницы
                  • Frontmatter: все поля
                  • Синтаксис markdown
                  • Языки и переводы страниц
                • Фреймы
                  • Вставки onpress/
                  • Бинды data-op-bind
                  • Сборка страницы и статическая копия
                • Готовые фреймы
                  • Фрейм assistant: страница с чатом ассистента
                  • Фрейм outline: оглавление в тексте
                  • Фрейм faq: вопросы из текста страницы
                  • Фрейм article: статья
                  • Фрейм docs: документация
                  • Фрейм site__header: шапка сайта
                  • Фрейм site__footer: подвал сайта
                  • Фрейм article__faq: вопросы из набора
                  • Фрейм landing: лендинг ассистента
                  • Фрейм assistant__chat: чат обычной разметкой
                  • Фрейм site__404: страница «не найдено»
                  • Фрейм news: лента новостей
                  • Фрейм news__category: рубрика новостей
                  • Фрейм news__post: новость
                  • Фрейм news__more: читайте ещё
                  • Фрейм news__share: поделиться
                  • Фрейм author__page: страница автора
                  • Фрейм author__byline: подпись автора
                  • Фрейм author__card: карточка автора
                  • Фрейм author__avatar: аватар автора
                  • Фрейм author__socials: соцсети автора
                  • Фрейм author__head: объявление набора автора
                  • Фрейм home: главная-документ
                  • Фрейм pricing: тарифы
                • Наборы данных и системные источники
                  • Повторитель onpress/repeat
              • Стили и оформление
              • Меню
              • Сайдбар документации
              • Языки сайта
              • Настройки, главная и кэш
              • SEO
              • Медиа
              • Сайты и домены
              • Пользователи и профиль
              • Дашборд и вход
                • Рецепты
                  • Сайт с нуля
                  • Раздел документации
                  • Лендинг из конструктора
                  • FAQ на странице
                  • Свой фрейм из готового
                  • Многоязычный сайт
                  • Поменять меню
                  • Перенести страницу
                  • Картинки в статье
                  • Список из данных
                  • Сменить оформление
                • Справочник API
                  • Справочник: страницы
                  • Справочник: переводы
                  • Справочник: фреймы
                  • Справочник: данные
                  • Справочник: меню
                  • Справочник: сайдбар документации
                  • Справочник: стили
                  • Справочник: настройки, главная, кэш
                  • Справочник: языки
                  • Справочник: SEO
                  • Справочник: медиа
                  • Справочник: сайты
                  • Справочник: пользователи и профиль
                  • Справочник: вход и служебное
                • Ошибки и частые проблемы
                  • Коды ошибок
        • Старая документация v1
            • Старая документация v1
              • Начало
              • Привязка домена
              • Виджеты
              • Структура ссылок
              • Connector.js
              • Шапка
              • Подвал
              • Мультиязычность
              • Меню
              • Как настроить стили сайта через Design
              • Schema разметка
              • Open Graph
              • Аналитика
              • FAQ
              • Robots.txt
              • Sitemap
OnPress OnPress
  • Документация
  • Контакты
Войти
    • Docs
        • Документация OnPress v2
            • Документация OnPress v2
              • Как устроена платформа
              • Быстрый старт
              • Доступ, роли и выбор сайта
                • Страницы
                  • Frontmatter: все поля
                  • Синтаксис markdown
                  • Языки и переводы страниц
                • Фреймы
                  • Вставки onpress/
                  • Бинды data-op-bind
                  • Сборка страницы и статическая копия
                • Готовые фреймы
                  • Фрейм assistant: страница с чатом ассистента
                  • Фрейм outline: оглавление в тексте
                  • Фрейм faq: вопросы из текста страницы
                  • Фрейм article: статья
                  • Фрейм docs: документация
                  • Фрейм site__header: шапка сайта
                  • Фрейм site__footer: подвал сайта
                  • Фрейм article__faq: вопросы из набора
                  • Фрейм landing: лендинг ассистента
                  • Фрейм assistant__chat: чат обычной разметкой
                  • Фрейм site__404: страница «не найдено»
                  • Фрейм news: лента новостей
                  • Фрейм news__category: рубрика новостей
                  • Фрейм news__post: новость
                  • Фрейм news__more: читайте ещё
                  • Фрейм news__share: поделиться
                  • Фрейм author__page: страница автора
                  • Фрейм author__byline: подпись автора
                  • Фрейм author__card: карточка автора
                  • Фрейм author__avatar: аватар автора
                  • Фрейм author__socials: соцсети автора
                  • Фрейм author__head: объявление набора автора
                  • Фрейм home: главная-документ
                  • Фрейм pricing: тарифы
                • Наборы данных и системные источники
                  • Повторитель onpress/repeat
              • Стили и оформление
              • Меню
              • Сайдбар документации
              • Языки сайта
              • Настройки, главная и кэш
              • SEO
              • Медиа
              • Сайты и домены
              • Пользователи и профиль
              • Дашборд и вход
                • Рецепты
                  • Сайт с нуля
                  • Раздел документации
                  • Лендинг из конструктора
                  • FAQ на странице
                  • Свой фрейм из готового
                  • Многоязычный сайт
                  • Поменять меню
                  • Перенести страницу
                  • Картинки в статье
                  • Список из данных
                  • Сменить оформление
                • Справочник API
                  • Справочник: страницы
                  • Справочник: переводы
                  • Справочник: фреймы
                  • Справочник: данные
                  • Справочник: меню
                  • Справочник: сайдбар документации
                  • Справочник: стили
                  • Справочник: настройки, главная, кэш
                  • Справочник: языки
                  • Справочник: SEO
                  • Справочник: медиа
                  • Справочник: сайты
                  • Справочник: пользователи и профиль
                  • Справочник: вход и служебное
                • Ошибки и частые проблемы
                  • Коды ошибок
        • Старая документация v1
            • Старая документация v1
              • Начало
              • Привязка домена
              • Виджеты
              • Структура ссылок
              • Connector.js
              • Шапка
              • Подвал
              • Мультиязычность
              • Меню
              • Как настроить стили сайта через Design
              • Schema разметка
              • Open Graph
              • Аналитика
              • FAQ
              • Robots.txt
              • Sitemap
Фреймы
Markdown
Открыть в ИИ
  • Открыть в ChatGPT
  • Открыть в Claude
  • Открыть в Gemini
  • Открыть в Perplexity
  • Открыть в Grok
  • Открыть в DeepSeek

Вставки onpress/

Вставка — HTML-комментарий особого вида, который при сборке страницы заменяется разметкой: меню, телом страницы, списком из данных, другим фреймом. В браузере комментарий невидим, переживает экспорт из конструкторов и не мешает фигурным скобкам шаблонизаторов.

Синтаксис

<!-- onpress/menu {"place":"header"} /-->             одиночная вставка
<!-- onpress/repeat {"source":"faq"} -->              парная: открытие
  <div data-op-bind='{"text":"item.q"}'></div>        шаблон внутри
<!-- /onpress/repeat -->                              закрытие
<!-- onpress/content /-->                             без атрибутов
  • После <!-- обязателен пробел, после имени — тоже (или сразу /-->).
  • Атрибуты — один JSON-объект с двойными кавычками. Битый JSON — атрибуты молча падают в значения по умолчанию, поэтому проверяйте JSON до загрузки.
  • Неизвестное имя не выполняется: в разметке останется комментарий.

Основная форма и алиасы. Основная форма вставки — полное имя: <!-- onpress/имя {…} /-->, у парной — <!-- onpress/repeat … --> … <!-- /onpress/repeat -->. Для совместимости принимаются два алиаса: короткий <!-- op/menu {…} /--> и старый, с префиксом ядра, <!-- wp:op/menu {…} /-->. Все три формы разбираются одинаково и могут стоять рядом; хранится то, что вы прислали, байт в байт. В документации везде используется основная форма.

wp:onpress/… — это не вставка. Форма с wp: без изменений означает блоки плагина onpress-blocks — контент первой версии (wp:onpress/ai-assistant, wp:onpress/faq-items, wp:onpress/footer-columns). Голый onpress/… без wp: — всегда вставка из этого справочника, в том числе при совпадении имени: footer-columns есть и там, и там, и <!-- onpress/footer-columns /--> выводит вставку, а <!-- wp:onpress/footer-columns --> — блок плагина.

Вставки работают во фреймах и в теле страницы (в markdown строка <!-- onpress/… --> проходит в тело как есть). Когда вставке нечего вывести, на её месте остаётся поясняющий HTML-комментарий с пометкой вида op/menu: … — смотрите исходный код страницы, если что-то не появилось. Пометки и отчёт записи фрейма (inserts) называют вставку коротким именем.

Список вставок

ВставкаЧто выводитЗависит от страницы
onpress/menuменю из области темынет
onpress/lang-switcherпереключатель языковнет*
onpress/socialsссылки на соцсети сайтанет
onpress/footer-columnsменю подвала колонкаминет
onpress/copyrightстрока копирайтанет
onpress/repeatповтор шаблона по спискупо обстоятельствам
onpress/contentтело страницыда
onpress/frameдругой фреймкак у вложенного
onpress/slotсодержимое, переданное в вызов фрейманет
onpress/valueодно значение без тегапо токену
onpress/calloutврезку с содержимымнет
onpress/featured-imageизображение записида
onpress/termsтермины таксономии страницыда
onpress/faqвопросы и ответы из markdown внутри вставкинет
onpress/faq-schemaJSON-LD FAQPage по спискуда
onpress/assistantчат-ассистент Framesuiteда
onpress/assistant-welcomeпервый кадр чата Framesuiteда
onpress/docs-navдерево документациида
onpress/outlineоглавление по заголовкамда
onpress/searchполе поиска по деревунет
onpress/share-aiкнопку Copy и «Explore with AI»да
onpress/pagerссылки «назад» и «вперёд»да
onpress/partialустаревшая ссылка на фреймда

«Зависит от страницы» — фрейм с такой вставкой собирается на каждом запросе и не даёт статической копии (см. сборку). *onpress/lang-switcher сам копию не отменяет, но показывает языки конкретной страницы.

Вставки, результат которых зависит от языка (фрейм с ними собирается отдельно на каждый язык): onpress/menu, onpress/lang-switcher, onpress/footer-columns, onpress/repeat, onpress/frame, onpress/content, onpress/socials, onpress/copyright, onpress/docs-nav, onpress/outline, onpress/share-ai, onpress/pager, onpress/partial.

onpress/menu

Меню из области навигации темы — header, footer_1, footer_2, footer_3. Для языка страницы берётся меню, стоящее в области на этом языке.

<nav class="site-header__nav">
  <!-- onpress/menu {"place":"header","class":"site-header__menu","depth":1} /-->
</nav>
<!-- onpress/menu {"place":"header","display":"dropdown","label":"Меню"} /-->
АтрибутПо умолчаниюСмысл
placeheaderобласть темы; синоним location
langязык страницывзять меню другого языка
depth0глубина: 0 — все уровни, 1 — только верхний
classop-menuкласс списка ul
idmenu-<слаг меню>id списка; повтор на странице получает суффикс -1, -2
displaylistdropdown — свернуть меню в details/summary
label«Меню»подпись свёрнутого меню

Выводит стандартный список WordPress: ul.<class> с пунктами li.menu-item, у текущего пункта классы current-menu-item. В режиме dropdown — details.<class>.<class>--dropdown > summary.<class>__summary > span.<class>__current и список. Нет меню в области — комментарий op/menu: для области … меню не назначено. Что в меню — правится ручками меню.

onpress/lang-switcher

Переключатель языков Polylang.

<!-- onpress/lang-switcher {"display":"dropdown","show":"name"} /-->
<!-- onpress/lang-switcher {"scope":"site","show":"slug","hide_current":true} /-->
АтрибутПо умолчаниюСмысл
scopepagepage — только языки, на которых эта страница опубликована (при одном языке вставка ничего не выводит); site — все языки сайта, где перевода нет — ссылка на главную языка
displaylistlist или dropdown
shownameподпись: name (English, Русский) или slug (EN, RU)
hide_currentfalseне показывать текущий язык
label—подпись свёрнутого переключателя и его aria-label
classop-lang-switcherкорневой класс

Разметка: ul.<class> > li.<class>__item (у текущего is-current) > a.<class>__link с hreflang и aria-current. В режиме dropdown — details.<class>--dropdown с summary.<class>__summary и ul.<class>__menu. Без Polylang — комментарий.

onpress/socials

Ссылки на соцсети из настроек сайта: twitter, facebook, telegram, whatsapp, linkedin, instagram, reddit, gitlab, github, youtube, pinterest — выводятся только заполненные.

<!-- onpress/socials {"class":"site-footer__socials"} /-->
АтрибутПо умолчаниюСмысл
classop-socialsкласс списка

Разметка: ul.<class> > li.<class>__item > a.<class>__link.<class>__link--<сеть> (target="_blank", aria-label — имя сети). Сами ссылки в v2 API не правятся — их задаёт первая версия API (POST /wp-json/onpress/v1/settings/socials). Нет ни одной — комментарий.

onpress/footer-columns

Меню подвала колонками: по колонке на каждую область, заголовок колонки — имя меню.

<!-- onpress/footer-columns {"places":"footer_1,footer_2,footer_3"} /-->
АтрибутПо умолчаниюСмысл
placesfooter_1,footer_2,footer_3области через запятую
langязык страницыязык меню
classop-footer-columnsкорневой класс

Разметка: div.<class> > div.<class>__column.<class>__column--<область> > div.<class>__title и ul.<class>__list. Области без меню пропускаются; ни одной — комментарий.

onpress/copyright

<!-- onpress/copyright /-->
<!-- onpress/copyright {"text":"© 2016–{year} {name}. Все права защищены."} /-->
АтрибутПо умолчаниюСмысл
text© {год} {имя сайта}свой текст; {year} — текущий год, {name} — имя сайта
classop-copyrightкласс span

onpress/repeat

Повторяет вложенный шаблон по разу на элемент списка. Список — системный источник, набор сайта или массив прямо в атрибуте.

<ul class="team">
  <!-- onpress/repeat {"source":"team","limit":6} -->
  <li><strong data-op-bind='{"text":"item.name"}'></strong> <span data-op-bind='{"text":"item.role"}'></span></li>
  <!-- /onpress/repeat -->
</ul>
АтрибутПо умолчаниюСмысл
source—имя источника или набора; item.<поле> — вложенный список элемента внешнего повторителя
items[]список прямо в атрибуте, если source не задан или пуст
langязык страницывариант набора этого языка
match{}фильтр {"поле":"токен"}, значение — токен бинда, raw:значение или массив альтернатив
limit, offset—окно: сколько вывести и сколько пропустить; целое или выражение с токенами ("(page.paged - 1) * 3")
empty—frame — при пустом списке погасить весь фрейм, где стоит повторитель
separator—строка между элементами; после последнего не ставится
statusespublishстатусы страниц для источников pages.*
pageстраница сборкисчитать контекстные источники от другой страницы (id)

Внутри шаблона поля элемента адресуются биндами item.<поле>, вложенные — через точку (item.frame.slug). Пустой список без empty — комментарий op/repeat: список … пуст. Полное описание — повторитель onpress/repeat.

onpress/content

Тело страницы, которую собирают: markdown, превращённый в блоки, с якорями у заголовков H2–H6.

<article class="article__body"><!-- onpress/content /--></article>
АтрибутПо умолчаниюСмысл
pageстраница сборкивывести тело другой страницы по id

Выводится один раз: вложенный вызов (тело внутри тела) даёт комментарий. Без страницы в контексте — комментарий.

onpress/frame

Другой фрейм сайта в этом месте — единственная связь между фреймами.

<!-- onpress/frame {"name":"site__header"} /-->
<!-- onpress/frame {"name":"article__faq","class":"article__faq-wrap"} /-->
<!-- onpress/frame {"name":"assistant__chat","agent":"canva","agent_view":"profile"} /-->
АтрибутПо умолчаниюСмысл
name—слаг или id фрейма; алиасы ref, frame, slug, id
class—обернуть вложенный фрейм в div с этим классом
type—устаревшая форма (header, footer, partial), не используйте
любой другой—параметр вызова: читается внутри фрейма как frame.<ключ>

Ссылка. Основной ключ ссылки — name. Два ключа ссылки на разные фреймы в одной вставке ({"name":"a","ref":"b"}) — ошибка: запись фрейма с такой вставкой отвечает 400 frame_ref_conflict, а при сборке на месте вставки остаётся пометка op/frame: frame_ref_conflict: …. Слаг и id одного и того же фрейма конфликтом не считаются. Переименование фрейма (PATCH /frames/{ref} со slug) переписывает ссылки на новый слаг ключом name.

Нет такого фрейма — пустое место и комментарий; фрейм уже собирается (кольцо ссылок) — комментарий с цепочкой. До 8 уровней вложения. Работает и в теле страницы; и во фрейме, и в теле после правки вложенного фрейма или данных, которые он читает, кэш страницы сбрасывается автоматически. Подробно — фреймы.

Параметры вызова

Все атрибуты вызова, кроме служебных (name и его алиасы, type, class), уходят во фрейм параметрами. Внутри фрейма параметр читается как frame.<ключ> — в data-op-bind и в атрибутах вставок:

<!-- вызов -->
<!-- onpress/frame {"name":"assistant__chat","agent":"canva","agent_view":"profile"} /-->

<!-- внутри фрейма assistant__chat -->
<div id="ai-assistant-mount" data-op-bind='{"data-agent":"frame.agent","data-agent-view":"frame.agent_view"}'></div>
<!-- onpress/assistant-welcome {"id":"x8OA7Azs4hBy","agent":"frame.agent","agent_view":"frame.agent_view"} /-->
  • Токен в атрибуте вставки. Значение атрибута, целиком равное токену frame.<ключ> или page.<поле>, заменяется значением. Значения нет — атрибут снимается, и вставка берёт свой дефолт.
  • Литерал. Строка, которая только похожа на токен, пишется с префиксом raw:: {"label":"raw:page.title"} выведет текст page.title.
  • Свои токены. Атрибуты match, limit, offset у повторителя подстановкой не трогаются: токены в них разбирает сам повторитель.
  • Сборка. Фрейм с параметрами собирается на месте вызова из исходника — своей копии с чужими параметрами у него нет. Токен page.* в атрибуте вставки делает фрейм собираемым на запросе, как page.* в бинде.

Слот

Парная форма вызова передаёт во фрейм содержимое — обычный markdown страницы:

## FAQ

<!-- onpress/frame {"name":"faq"} -->
### Сколько это стоит?

Бесплатно на любом тарифе.

### Нужна ли карта?

Нет.
<!-- /onpress/frame -->

Внутри фрейма содержимое ставит onpress/slot, а повторитель получает из него пары вопрос-ответ источником slot.faq. Содержимое слота остаётся в теле страницы как есть: выгрузка GET /pages/{ref}/markdown и повторная заливка его не меняют. Перед вызовом выгрузка ставит пустую строку после заголовка. Готовый фрейм FAQ — в рецепте FAQ.

onpress/slot

Содержимое, переданное в парный вызов фрейма. Markdown превращается в HTML тем же конвертером, что публикует страницы: списки, ссылки, картинки, выделение работают.

<section class="note"><!-- onpress/slot /--></section>

Атрибутов нет. Фрейм вызван одиночной формой — слот пуст и ничего не выводит.

Источник slot.faq. Повторитель с "source":"slot.faq" разбирает слот на пары вопрос-ответ по правилам onpress/faq: уровень первого заголовка — вопрос, всё до следующего заголовка того же уровня — ответ.

Поле элементаЧто в нём
q, aвопрос и ответ HTML
q_text, a_textтот же текст без разметки — для JSON-LD и атрибутов
question, answerисходный markdown

onpress/value

Одно значение без тега-носителя. Токен тот же, что у бинда: page.*, page.data.*, site.*, item.*, frame.*, raw:….

<!-- onpress/value {"bind":"page.title"} /-->
<!-- onpress/value {"bind":"item.q_text","format":"json"} /-->
АтрибутПо умолчаниюСмысл
bind—токен
formattexttext — HTML-экранирование; html — как есть; json — JSON-литерал

Формат json безопасен внутри <script>: </ превращается в <\/, <!-- — в \u003C!--, символы U+2028 и U+2029 экранируются; значения нет — выводится null. В форматах text и html без значения не выводится ничего.

Вставка работает везде, в том числе внутри <script>, где тегов для data-op-bind нет, — так собирается JSON-LD из данных страницы или повторителя. Ограничение: в теле страницы onpress/value ставится только отдельной строкой — внутри строки абзаца выгрузка в markdown его теряет. Во фреймах ограничений нет.

onpress/callout

Врезка: заголовок, иконка и произвольное содержимое. Разметка та же, что у блока плагина wp:onpress/standard-alert, стили общие.

<!-- onpress/callout {"variant":"warning","title":"Перевыпуск токена"} -->
<p>Старый токен перестаёт работать <strong>сразу</strong>.</p>
<!-- /onpress/callout -->
АтрибутПо умолчаниюСмысл
variantdefaultdefault, info, success, warning, destructive; неизвестный — default
title—заголовок
iconпо вариантуимя значка Material Symbols (info, check_circle, warning, clear и любые другие)
showIcontrueпоказывать значок
showTitletrueпоказывать заголовок

Содержимое между открытием и закрытием выводится как HTML: пишите <p>, <ul>, блоки Гутенберга. Markdown внутри врезки не конвертируется. Ни заголовка, ни содержимого — комментарий.

onpress/featured-image

Изображение записи (миниатюра) как <picture> с размерами и WebP — тем же кодом, каким выводятся картинки в тексте.

<!-- onpress/featured-image {"figure":true,"loading":"eager","fetchpriority":"high"} /-->
АтрибутПо умолчаниюСмысл
class—класс img
picture_class—класс picture
loadinglazyатрибут loading
fetchpriority—high для первого экрана
linkfalseобернуть в ссылку на страницу
figurefalseобернуть в figure.op-featured-image с подписью вложения
pageстраница сборкивзять изображение другой записи

alt — из вложения, пустой — заголовок страницы. Изображение записи ставится ключом _thumbnail_id во frontmatter публикации (id вложения, см. frontmatter). Нет изображения — комментарий.

onpress/terms

Термины таксономии текущей записи списком ссылок.

<!-- onpress/terms {"taxonomy":"topic","label":"Тема:"} /-->
АтрибутПо умолчаниюСмысл
taxonomycategoryтаксономия; у страниц это topic (поле topic во frontmatter)
linktrueссылки на архив термина
limit0сколько показать, 0 — все
label—подпись перед списком
classop-termsкорневой класс

Разметка: div.<class>.<class>--<таксономия> > span.<class>__label и ul.<class>__list > li.<class>__item.<class>__item--<слаг> > a.<class>__link. Нет таксономии или терминов — комментарий.

onpress/faq

Вопросы и ответы прямо в тексте страницы: аккордеон и разметка FAQPage из обычного markdown внутри вставки. Набор данных не нужен — вопросы лежат в теле и выгружаются вместе с ним.

## Частые вопросы

<!-- onpress/faq -->
### Сколько это стоит?

Бесплатно на любом тарифе. В него входит:

- безлимит страниц;
- все языки.

### Нужна ли карта?

Нет.
<!-- /onpress/faq -->
АтрибутПо умолчаниюСмысл
idfaqid секции — якорь для ссылок; если на странице он уже занят (заголовком или другой вставкой), получает хвост: faq-2, faq-3
schematrueвыводить JSON-LD FAQPage

Правило вопросов. Уровень первого заголовка внутри вставки — уровень вопроса. Каждый заголовок этого уровня — вопрос, всё до следующего такого же — ответ. Заголовок глубже остаётся частью ответа. Ответы конвертируются тем же конвертером, что и страница: списки, ссылки, картинки, выделение работают.

Заголовок раздела пишите над вставкой обычным текстом, вплотную, без абзаца между ними — стили прижимают вставку к заголовку правилом h2 + .opfaq. Раздел можно назвать просто «FAQ»: заголовок оставит себе якорь #faq, а секция вставки получит faq-2 — одинаковых id на странице не будет. Нужен предсказуемый якорь у самой секции — задайте вставке свой id.

Разметка фиксированная, на неё написаны стили: section.opfaq#faq > div.opfaq__list > details.opfaq__item > summary.opfaq__q > span.opfaq__q-text и div.opfaq__a. Аккордеон работает без JavaScript. JSON-LD выводится после секции, один раз на страницу — если на странице есть и onpress/faq, и onpress/faq-schema, побеждает первая.

Вставка не делает фрейм зависимым от страницы: в теле страницы она выполняется через onpress/content, во фрейме — попадает в статическую копию.

onpress/faq продолжает работать. Для новых страниц удобнее фрейм faq со слотом: вопросы так же лежат в markdown страницы, а разметка аккордеона и схемы живёт во фрейме, который можно скопировать и переделать под себя, — см. рецепт FAQ.

Один FAQPage на страницу. Если в теле несколько FAQ-фреймов, их схемы при сборке тела сливаются в первую, остальные снимаются; onpress/faq-schema в этом случае свой FAQPage не выводит.

onpress/faq-schema

JSON-LD FAQPage из списка — тот же источник, язык и фильтр, что у повторителя. Нужна, когда вопросы живут в наборе данных, а не в теле.

<!-- onpress/faq-schema {"source":"faq","match":{"page":"page.slug"}} /-->
АтрибутПо умолчаниюСмысл
source—набор или источник
match—фильтр, как у onpress/repeat
langязык страницывариант набора
pageстраница сборкидругая страница для match
questionqполе вопроса
answeraполе ответа

HTML из вопросов и ответов вырезается. Пустой список — ничего не выводится. Вставка продолжает работать; если в теле страницы есть FAQ-фрейм со своей схемой, onpress/faq-schema свой FAQPage не выводит — на странице он один.

onpress/assistant

Встроенный чат-ассистент Framesuite — то же, что блок плагина wp:onpress/ai-assistant в контенте первой версии. Один раз на страницу.

<!-- onpress/assistant {"id":"x8OA7Azs4hBy"} /-->
<!-- onpress/assistant {"id":"x8OA7Azs4hBy","lib":"agents","agent":"canva","agent_view":"profile"} /-->
АтрибутСмысл
idid ассистента Framesuite (синоним assistantId)
libстраница приложения, с которой открывается ассистент (например agents)
agentслаг агента
agent_viewprofile или chat

Фрейм обычно общий для многих страниц, а вход у каждой свой: вставка с тем же id в теле страницы уточняет вход вставки из фрейма и второго чата не рисует. Скрипты и стили ассистента подключаются в <head> автоматически.

onpress/assistant-welcome

Первый кадр чата Framesuite: готовая разметка приветственного экрана, которую сервер забирает из Framesuite и держит в кэше сутки. Человек и поисковик видят ассистента вместе со страницей, приложение чата потом подменяет кадр собой.

<!-- onpress/assistant-welcome {"id":"x8OA7Azs4hBy","agent":"frame.agent","agent_view":"frame.agent_view"} /-->
АтрибутСмысл
idid ассистента Framesuite
libстраница приложения, с которой открывается ассистент
agentслаг агента
agent_viewprofile или chat

Вставка выводит только кадр. Это вариант сборки чата обычной разметкой: фрейм assistant__chat собирает всё остальное сам — контейнер #ai-assistant-mount с data-slug, загрузчик, стили, синхронизацию тёмной темы, — а параметры agent, agent_view, lib приходят вызовом фрейма и читаются как frame.*:

<!-- onpress/frame {"name":"assistant__chat","agent":"canva","agent_view":"profile"} /-->

В теле страницы, внутри колонки .prose, чат обрезается, поэтому его ставят во фрейме над телом. Агента тогда передаёт первая строка тела — вставка onpress/assistant с тем же id: она уточняет вход вставки из фрейма и второго чата не рисует (см. onpress/assistant).

Карта импортов для чата выводится в <head> автоматически, если на странице есть onpress/assistant-welcome. В <body> её не ставьте: в <head> уже есть модульный скрипт, и браузеры без поддержки нескольких карт импортов вторую отбросят. Старая вставка onpress/assistant продолжает работать.

onpress/docs-nav

Левое дерево документации: страницы сайта, собираемые фреймом документации, с активным пунктом, раскрытым предком, черновиками для вошедших редакторов, поиском. Подписи пунктов — nav_label страницы или её заголовок. Как устроено дерево — сайдбар документации.

<!-- onpress/docs-nav {"shell":"drawer"} /-->
<!-- onpress/docs-nav {"shell":"toggle"} /-->
<!-- onpress/docs-nav {"shell":"sidebar"} /-->
АтрибутПо умолчаниюСмысл
shell—обвязка: пусто — только дерево; sidebar — боковая колонка nav.opdoc__sidebar; drawer — мобильная шторка #opdoc-drawer; toggle — кнопка открытия шторки с «родитель → страница»
searchtruefalse — убрать встроенное поле поиска (если поиск стоит отдельной вставкой)

aria-подписи выводятся на языке страницы.

onpress/outline

Оглавление по заголовкам текущей страницы, с теми же якорями, что проставляет onpress/content.

<div class="opdoc__aside"><!-- onpress/outline {"levels":"2-3"} /--></div>
АтрибутПо умолчаниюСмысл
levelsвсе H2–H62 — только H2, 2-3 — H2 и H3, 2,4 — через запятую, диапазоны и уровни можно смешивать; неразборчивое значение — все уровни
title«На этой странице» на языке страницызаголовок колонки
barefalseтолько список ul.aside-nav-list, без обвязки и заголовка
shell—spoiler — свёрнутый details.opdoc__outline--spoiler

Нет заголовков — комментарий.

onpress/search

Поле поиска по дереву документации (разметка из той же части темы, что у onpress/docs-nav). Фильтрует пункты только внутри контейнера дерева — вне его останется просто полем.

<!-- onpress/search {"placeholder":"Поиск по документации"} /-->
АтрибутПо умолчаниюСмысл
placeholderна языке страницыподсказка в поле

onpress/share-ai

Кнопка Copy (копирует страницу как markdown) с выпадающим списком «Explore with AI» — ссылки на семь моделей с адресом текущей страницы. Подписи — на языке страницы.

<!-- onpress/share-ai {"view":"docs"} /-->
АтрибутПо умолчаниюСмысл
view—docs — вид для шапки документации на details
copytruefalse — только список моделей, без кнопки Copy
label«Copy» на языке страницыподпись кнопки

onpress/pager

Ссылки на предыдущую и следующую страницы в том же порядке, в каком они стоят в дереве документации. Пустая сторона держит место.

<!-- onpress/pager /-->
<!-- onpress/pager {"prev_label":"Назад","next_label":"Дальше"} /-->
АтрибутПо умолчаниюСмысл
prev_label, next_label«Назад» и «Далее» на языке страницыподписи
labelна языке страницыaria-label навигации

onpress/partial

Устаревший псевдоним onpress/frame {"type":"partial"}. В новых фреймах не используется; пишите onpress/frame {"name":"…"}.

Проверка вставок

После загрузки фрейма смотрите в ответе inserts (что найдено), warnings и bake.response.unresolved/unknown_inserts (что не разобралось). Что получит повторитель, заранее показывает POST /data/resolve — см. наборы данных. На готовой странице ищите в исходном коде комментарии с пометкой op/…: … — каждая вставка, которой нечего вывести, оставляет такой.

arrow_backНазад
Фреймы
Далееarrow_forward
Бинды data-op-bind
На этой странице
  • Синтаксис
    • Список вставок
      • onpress/menu
        • onpress/lang-switcher
          • onpress/socials
            • onpress/footer-columns
              • onpress/copyright
                • onpress/repeat
                  • onpress/content
                    • onpress/frame
                      • Параметры вызова
                        • Слот
                      • onpress/slot
                        • onpress/value
                          • onpress/callout
                            • onpress/featured-image
                              • onpress/terms
                                • onpress/faq
                                  • onpress/faq-schema
                                    • onpress/assistant
                                      • onpress/assistant-welcome
                                        • onpress/docs-nav
                                          • onpress/outline
                                            • onpress/search
                                              • onpress/share-ai
                                                • onpress/pager
                                                  • onpress/partial
                                                    • Проверка вставок
                                                    OnPress
                                                    OnPress
                                                    ИП Зуев И.В. ИНН: 360408359441
                                                    © 2026
                                                    политика конфиденциальности публичная оферта
                                                    • visa
                                                    • mastercard
                                                    • sber
                                                    • tpay