Теги в шаблоне записи новостей
Где править: Новости → Шаблоны записей (образцы «Блог» и «Карточка фильма»; хранится до 20 версий, у каждой кнопка «Вернуть»). Шаблон — обычный текст с разметкой HTML, в который вставляются теги в фигурных и квадратных скобках.
Значения ({…})
| Тег | Что выводит | Пример |
|---|---|---|
{id} | номер записи | {id} |
{title} | название; опция limit=N обрезает | {title limit=60} |
{url} | адрес записи | <a href="{url}"> |
{site} | название сайта | {site} |
{date} | дата публикации; опция format= задаёт вид | {date format=d.m.Y} |
{author} | имя автора | {author} |
{category} | название рубрики | {category} |
{category.url} | адрес страницы рубрики | <a href="{category.url}"> |
{excerpt} | короткий текст; опция limit=N | {excerpt limit=160} |
{body} | полный текст записи | {body} |
{cover} | обложка; опция size=ШxВ | {cover size=600x400} |
{views} | число просмотров | {views} |
{comments} | число комментариев | {comments} |
{readtime} | минут на чтение | {readtime} |
{field:ИМЯ} | значение своего поля записи; опции limit=, size= | {field:director} |
{fieldlabel:ИМЯ} | подпись поля | {fieldlabel:director} |
Опции тегов и значения по умолчанию
| Опция | Где работает | Если не указана | Если указана |
|---|---|---|---|
limit=N | title, excerpt, body и текстовые поля | текст не обрезается | число от 1 до 5000 (меньше или больше — сводится к границе), обрезка по знакам с «…»; у body выводится простой текст без разметки; нечисловое значение игнорируется |
format=… | date | d.m.Y | разрешены только знаки d D j m M n Y y H i s a A g G h F, пробел, ., /, :, -, не больше 20; иначе тоже d.m.Y |
size=ШxВ | cover и поле-картинка | картинка без width и height | например 300x450, каждая сторона до 4000; иначе опция игнорируется |
Правильная запись: {cover size=400x300}, {date format=d.m.Y}, {excerpt limit=160}.
Внутри повтора ([each:…]): {item} — текущий элемент, {item.url} — его адрес (для меток и файлов), {item.alt} — подпись картинки (для галереи), {index} — номер по порядку с единицы.
Теги страницы записи
Соседние и связанные записи, печать, страницы текста, картинки по номеру, карточка автора, опрос и жалоба. Все значения проходят белый список: текст экранируется, адреса — только путь от корня или https://.
| Тег | Что выводит | Пример |
|---|---|---|
{previous.title} {previous.url} {previous.date} {previous.excerpt} {previous.cover_url} | предыдущая запись (старше); если её нет — пусто. То же для {next.…} — следующая | [if:next.url]<a href="{next.url}">{next.title} →</a>[/if] |
[each:related] … {item} {item.url} {item.excerpt} {item.date} {item.cover} | связанные записи (те, что указаны в записи) | [each:related]<li><a href="{item.url}">{item}</a></li>[/each] |
{print_button} | кнопка «Печать» (работает без скриптов темы) | {print_button} |
{pages} {page.current} {page.total} {page.prev_url} {page.next_url} | запись, разбитая метками [page]: список страниц, номер, число, ссылки; у записи без разбивки пусто | [if:page.total]{pages}[/if] |
{image:1.url} … {image:20.url}, [if:image:N], {images.count} | картинки текста записи по порядку; нет такой — пусто | <img src="{image:1.url}" alt=""> |
{author.avatar_url} {author.bio} | аватар и «О себе» автора — только если профиль автора открыт | [if:author.bio]<p>{author.bio}</p>[/if] |
{author.role} {author.role_name}, [if:author.role=editor] | старшая роль автора: подпись и машинное имя; в условии подходит любое из двух, можно несколько через запятую | [if:author.role=editor,admin]Редакция[/if] |
{author.posts} {author.rss_url} | сколько записей у автора на сайте; лента автора | {author.posts} |
{poll} | опрос записи (если он выбран) | {poll} |
{report} | «Пожаловаться на запись» — раскрывающаяся форма (нужны комментарии и включённые жалобы) | {report} |
{comments.subscriptions_url} | страница «Мои подписки» (вошедшему) | <a href="{comments.subscriptions_url}">Подписки</a> |
{archive_day.url} | архив новостей за день выхода записи | <a href="{archive_day.url}">Ещё за этот день</a> |
Рубрика и цепочка разделов записи и ленты видны главной рамке на тегах: {category.*}, [each:crumbs] (новости › родительская рубрика › рубрика › запись).
Условия и повторы
| Запись | Что делает |
|---|---|
[if:имя]…[/if] | выводит кусок, если значение есть (непустое) |
[ifnot:имя]…[/ifnot] | выводит, если значения нет |
[if:имя=значение]…[else]…[/if] | сравнивает со значением, иначе — вторая ветка |
[each:tags]…[/each] | повторяет по меткам записи |
[each:field:ИМЯ]…[/each] | повторяет по полю со многими значениями: множественный выбор, галерея |
Для условий доступны имена: title, excerpt, body, cover, author, category, views, comments, tags, field:ИМЯ.
Сравнения: больше, меньше, не равно
К условию можно добавить оператор: [if:year>2000], [if:price<=100], [if:genre!=драма], [ifnot:year>=2030]. Операторы: =, !=, >, <, >=, <=. Если обе части — числа (запятая как точка), сравниваются числа, иначе — текст без учёта регистра. Пустое или отсутствующее значение сравнения «больше/меньше» не проходит.
Параметры списков: key=value
Список можно настроить параметрами через пробел — после имени, до закрывающей скобки:
[each:news_list category=films,serials limit=5 sort=views field:year>2000]
<a href="{item.url}">{item.title}</a>
[/each]Привычная запись news_list:cat:3:limit:5 работает как раньше и означает то же самое — выбирайте любую.
| Параметр | Значение |
|---|---|
category (cat) | рубрики: номер или имя, список 3,5, диапазон 3-7, исключение !news (из диапазона вычитается: 3-7,!5) |
not_category | рубрики, которые нужно исключить |
limit / start | сколько записей (1–100) / с какой начать |
sort | порядок: new, old, title, views, rating, rand |
days | за сколько последних дней |
author (user), tag | автор и метка по номеру |
field:ИМЯ | по дополнительному полю: field:year>2000, field:genre!=драма, field:director=Кубрик |
home, fixed, cover, poll, password, comments, featured | флаги; можно yes/no, да/нет, 1/0 |
lang, cache | язык и сколько секунд хранить результат (до часа, только гостю) |
Неизвестный параметр редактор шаблонов подсвечивает предупреждением со строкой; в тег помещается до восьми параметров. Значение с пробелами пишется в кавычках: title="две части". Какие из параметров поддерживает именно ваш список — смотрите во вставке этого списка.
Безопасность и пределы
| Правило | Значение |
|---|---|
| PHP, вызовы функций, чтение файлов и настроек | нет — язык умеет только подставить значение, проверить «есть ли» и пройти по списку |
| HTML шаблона | очищается по белому списку: без script, style, form, iframe, без атрибутов on* и data-* |
Адреса в href/src | только http(s)://, путь от корня /… и #… |
| Размер шаблона | не больше 20000 знаков |
| Число тегов | не больше 400 |
| Вложенность условий и повторов | не больше 6 уровней |
| Повторов в списке | не больше 200 |
| Размер результата | не больше 300000 знаков |
Значения экранируются по месту: в тексте, в атрибуте и в адресе по-разному, поэтому название записи с кавычкой или тегом не ломает вёрстку.
Обновлено 16.10.2026
Пока никто не высказался. Будьте первым.