В Битриксе часто по умолчанию заголовок H1 страницы и последний элемент хлебных крошек (название текущей страницы) берутся из одного и того же места: из значения, установленного методом $APPLICATION->SetTitle().
Чтобы вывести их по-разному или в разных местах, нужно разделить логику их отображения в шаблоне сайта. Вот несколько распространенных способов:
-
Разделить вывод в `header.php` (наиболее частый способ): Шаблон сайта обычно имеет файл `header.php`. В этом файле происходит вывод как заголовка H1, так и хлебных крошек. По умолчанию они могут использовать `$APPLICATION->ShowTitle()`. Вам нужно изменить эту логику.
<li>
Текущая ситуация (типично): В `header.php` может быть что-то вроде:
php Скопировать**
Закрыть блок
// Где-то в
$APPLICATION->ShowMeta("keywords");
$APPLICATION->ShowMeta("description");
$APPLICATION->ShowCSS();
$APPLICATION->ShowHeadStrings();
$APPLICATION->ShowHeadScripts();
<title><?php $APPLICATION->ShowTitle() ?></title>
// Где-то в , часто в начале контентной части
# <?php $APPLICATION->ShowTitle(false) ?>
// Вывод заголовка как H1
<?php $APPLICATION->IncludeComponent(
"bitrix:breadcrumb",
"", // или имя вашего шаблона хлебных крошек
array(
"START_FROM" => "0",
"PATH" => "",
"SITE_ID" => "s1" // замените на ID вашего сайта, если нужно
),
false, // или $component, если внутри компонента
array('HIDE_ICONS' => 'Y') // скрытие иконок по умолчанию
);?>
Здесь `$APPLICATION->ShowTitle()` используется и в `<title>`, и как H1. Хлебные крошки компонента `bitrix:breadcrumb` также по умолчанию используют значение `$APPLICATION->SetTitle()` для последней ссылки.
-
Как разделить: Вам нужно изменить логику вывода H1. Вместо `$APPLICATION->ShowTitle()`, вы можете:
а) Использовать отдельное свойство страницы для H1: Это наиболее гибкий способ.
<li>Определите пользовательское свойство страницы, например, `PAGE_H1`.
- В административной части, при редактировании каждой страницы или раздела, устанавливайте это свойство (`PAGE_H1`) с текстом, который вы хотите видеть как H1, и устанавливайте стандартный заголовок (`$APPLICATION->SetTitle()`) для `<title>` и хлебных крошек.
-
В `header.php` (или в шаблоне страницы/раздела) измените вывод H1 так:
php Скопировать
Закрыть блок
<?php
// Получаем значение пользовательского свойства PAGE_H1
$pageH1 = $APPLICATION->GetPageProperty("PAGE_H1");
// Если свойство установлено, используем его для H1
if ($pageH1) {
echo '
# ' . $pageH1 . '
';
} else {
// Иначе используем стандартный заголовок страницы как H1
// $APPLICATION->ShowTitle(false); // Вывод заголовка без тегов, если он уже установлен с тегами
// Или просто echo $APPLICATION->GetTitle(); если нужен только текст
echo '
# ' . $APPLICATION->GetTitle() . '
'; // Используем GetTitle для получения чистого текста
}
// Вывод хлебных крошек остается стандартным (они используют SetTitle)
$APPLICATION->IncludeComponent(
"bitrix:breadcrumb",
"", // или имя вашего шаблона
array(
"START_FROM" => "0",
"PATH" => "",
"SITE_ID" => "s1" // замените
),
false,
array('HIDE_ICONS' => 'Y')
);
?>
- В административной части при редактировании страницы:
<li>В поле "Заголовок окна браузера (`<title>`)" или "Заголовок страницы" (в зависимости от настройки шаблона и мета-тегов) указывайте текст для `<title>` и хлебных крошек.
- В разделе "Дополнительно" -> "Пользовательские поля" (если они настроены для страниц) или "Свойства страницы" -> "PAGE_H1" указывайте текст, который должен быть H1.
б) Выводить H1 из самого компонента или шаблона страницы: Вместо вывода H1 в `header.php` совсем, выносите его в тело контентной части страницы или шаблоны комплексных компонентов.
- В `header.php` убираете вывод `
…
`.
- На статических страницах (`.php` файлы) вручную добавляете `
Текст для H1
. При этом $APPLICATION->SetTitle()используете только для
- В шаблонах комплексных компонентов (например, каталог, новости) часто есть возможность включить/отключить вывод заголовка раздела/элемента как H1. Выключаете его в общих настройках компонента, если нужно, и затем в шаблоне компонента (`template.php`) выводите заголовок элемента/раздела как H1. Например:php Скопировать
Закрыть блок
// В шаблоне компонента news.detail или catalog.element
# <?php echo $arResult["NAME"]; ?>
// При этом в header.php нет общего H1, а $APPLICATION->SetTitle()
// используется для хлебных крошек и <title>
Этот подход дает полный контроль, но требует внимательности на каждой странице или в каждом используемом компоненте.
-
Модифицировать шаблон компонента `bitrix:breadcrumb`: Этот способ менее распространен для разделения H1 и хлебных крошек, но может быть полезен, если вы хотите, чтобы последний элемент хлебных крошек отображался иначе, чем сам H1 (например, без ссылки, другим шрифтом, или вообще не отображался).
<li>Создайте переопределение шаблона компонента `bitrix:breadcrumb` (скопируйте стандартный шаблон `/.default` в свой шаблон сайта в папку `components/bitrix/breadcrumb/` под новым именем).
- Отредактируйте файл `template.php` этого нового шаблона. Найдите код, отвечающий за вывод последнего элемента `$arResult` и измените его логику или форматирование. Например, чтобы убрать ссылку или сделать его просто текстом.
- В вызове компонента `bitrix:breadcrumb` в `header.php` укажите имя вашего нового шаблона.
Резюме и Рекомендации:
- Наиболее гибкий и рекомендуемый способ для чистого разделения H1 и `<title>`/хлебных крошек — использование пользовательского свойства страницы (например, `PAGE_H1`). Это позволяет независимо задавать тексты для H1 и для `<title>`/хлебных крошек в админке и выводить их в шаблоне.
- Если на сайте используются в основном комплексные компоненты (каталог, новости), часто проще отключить стандартный H1 в `header.php` и управлять выводом H1 внутри шаблонов самих компонентов.
- Никогда не редактируйте файлы ядра Битрикса или стандартные шаблоны компонентов напрямую. Всегда используйте механизм переопределения шаблонов.
- Убедитесь, что на странице выводится только один тег `<h1>` для лучшей SEO-оптимизации.
Выберите способ, который лучше соответствует структуре вашего сайта и удобству работы контент-менеджеров.