Как задать условие вывода в заголовке h1 записи ТК

InstantCMS 2.X
#1 25 марта 2026 в 15:00

Может кто подскажет, как реализовать на Инстанте такую полезную в плане SEO вещь.
Создаем поле, допустим — Альтернативный заголовок. И задать при выводе записи условие, что бы: если заполнен этот заголовок, то он выводился в записи (статье), а если не заполнен, то системный (из поля — Заголовок из коробки). 
Суть в том, что это очень удобно при создании конкретных посадочных страниц. Можно создать заголовок (h1) любой длины полгоняя его под поисковые запросы, а в виджетах будет отображаться небольшой короткий заголовок из системного поля. 

К примеру, заголовок для виджета будет — Новые дома в Москве (он небольшой, передает смысл и аккуратно будет смотреться в виджете), а альтернативный на странице (под посадку — допустим собрав такие ключевики) к примеру таким — Купить новый дом от застройщика в микрорайоне Крылатское в Москве от застройщика недорого.

#2 25 марта 2026 в 16:25

Это всё делается в админке SEO для заголовков и по умолчанию, почитай не поленись как он правильно составляется, ну можно и доработать под себя конечно.
По типу такого
Изображение

#3 25 марта 2026 в 18:58

Спасибо, за участие, но это не совсем то что нужно.
Встроенный шаблонизатор — это SEO-помощник для «ленивых», он не даст того SEO-эффекта (поскольку ограничен в своих шорткодах), который даст реально наисанный руками заголовок статьи (h1), ну и остальные мета теги.
Поэтому вопрос остается пока открытым.
В Modx, которым когда то пользовался, этот вопрос решался просто заданием условия вывода загловка по дефолту, а если его нет то того, который указан вторым.
Вот такой простой конструкцией в коде нужного шаблона задавался:
<h1>[[*longtitle:default='[[*pagetitle]]']]</h1>
Я думаю, что что то подобное можно сделать и на InstantCMS, зная синтаксис.

#4 25 марта 2026 в 22:03

В Modx, которым когда то пользовался, этот вопрос решался просто заданием условия вывода загловка по дефолту, а если его нет то того, который указан вторым.
Вот такой простой конструкцией в коде нужного шаблона задавался:
<h1>[[*longtitle:default='[[*pagetitle]]']]</h1>

wer111

InstantCMS поддерживает простые условия, в документации об этом написано. И рядом с полем, где вводятся паттерны, есть даже ссылка на неё.

docs.instantcms.ru/manual/settings/seo-patterns

#5 26 марта 2026 в 08:38

InstantCMS поддерживает простые условия, в документации об этом написано. И рядом с полем, где вводятся паттерны, есть даже ссылка на неё.

docs.instantcms.ru/manual/settings/seo-patterns

Fuze

Уважаемый Fuze!
Спасибо за ссылку, с первого раза человеку неподготовленному (такому как мне) понять сложно — пришлось пройтись несколько раз.
Но все равно остались некоторые вопросы
Если я правильно понял, то мое условие для выода заголовка записи ТК должно выглядеть примерно так?

<h1>{delivery_type=2?alt_title: %s|title: %s}</h1>
Где:
— alt_title — значение поля с альтернативным заголовком
— title — значение системного заголовка
Вот только не понятно, что должно быть вместо — delivery_type (взято из примера)

#6 27 марта 2026 в 10:21

Странная у вас конструкция, там просто нужно сделать, если alt_title заполнен выводить его, иначе просто title  вот и всё!!! ну если я всё правильно понял.

  1. {alt_title?%s|{title}}

Что тут мы видим
{alt_title?...} — проверяет, заполнено ли поле alt_title
%s — если заполнено, подставляет его значение
|{title} — если не заполнено, выводит значение поля title

Кстати поделитесь своими интересными конструкциями с использованием фильтров, наборов, условий и так далее.Это очень полезная тема для SEO

К примеру на одном из своих сайтов я использовал не простую конструкцию которая учитывает сразу несколько данных кроме базовых: Категорию, Набор, Фильтр с его значением.

  1. Все {title|mb_strtolower} {ctype_label10} {ds_title} {filter_string? имеющие %s}


Что тут выходит:

{title|mb_strtolower} — название категории, переведённое в нижний регистр (например «легендарные»)
{ctype_label10} — склонение названия ТК из вкладки «Заголовки» в форме «Много, Родительный» (например «героев»)
{ds_title} — название текущего набора (например «Тьмы»)
{filter_string? имеющие %s} — условие: если фильтр задан, выводит «имеющие бонусы ..., если не задан — ничего не выводит

На выходе получим такой результат если все условия выбраны и соблюдены.:
Все легендарные герои Силы имеющие штрафы изнурение

Кому интересно протестировать можете тут.

Единственное в плане SEO что мне тут не особо нравиться так это формирование URL который выглядит как:
/heroes-sila/legendarnyi?debafy%5B0%5D=1240, зачем тут к фильтру подставляется %5B0%5D, откуда, для чего, вообще не понимаю, какой то лишний мусор, когда можно просто было прописать ?debafy=1240 а то и вообще ЧПУ как в наборе. И да я понимаю что это ?debafy[0]=1240. ))

#7 28 марта 2026 в 13:14

Спасибо за ответ, попробую. 🤝

Единственное в плане SEO что мне тут не особо нравиться так это формирование URL который выглядит как:
/heroes-sila/legendarnyi?debafy%5B0%5D=1240, зачем тут к фильтру подставляется %5B0%5D, откуда, для чего, вообще не понимаю, какой то лишний мусор, когда можно просто было прописать ?debafy=1240 а то и вообще ЧПУ как в наборе. И да я понимаю что это ?debafy[0]=1240. ))

Clear

Да, такой URL был бы получше, но скорее всего он роли никакой для SEO иметь не будет, поскольку формируется для динамически сформированных страниц по параметрам фильтров.
Я на своем сайте, выборочно делал посадочные страниц (для страниц списков записей, по которым хотел продвигать запросы) на основе наборов параметров фильтра. То есть задавал какое то условие для фильтрации, далее копировал полученный URL  в файл InstantCMS в котором можно задать внутренний редирект (сейчас не вспомню как называется) и там уже задавал ЧПУ. А далее создавал страницу с таким ЧПУ адресом.


Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.

Похожее в блогах

🍪Мы используем файлы cookie для работы сайта. Читать подробнее.