Как изменить мета теги в битриксе при постраничной навигации
Как изменить мета теги в битриксе при постраничной навигации
Константин Либерман
Основатель компании «LIBERTY»
75 просмотров
На всех ваших проектах скорей всего используются компоненты каталога или новостей, но как изменить title, description и h1 на второй, третей и т.д. страницах?
Открываем файл init.php и вставляем следующий код:
/***** Изменить мета теги в битриксе при постраничной навигации *****/
AddEventHandler("main", "OnEndBufferContent", "updatePagenation");
function updatePagenation(&$content){
if (isset($_GET['PAGEN_1']) && $_GET['PAGEN_1'] > 1) {
$curPage = $_GET['PAGEN_1'];
// title
$content = str_replace("</title>", " — страница ".$curPage."</title>", $content);
// description
$pattern = '#<meta name="description" content="(.*?)" />#s';
preg_match($pattern, $content, $matches);
$content = str_replace($matches[1], $matches[1]." — страница ".$curPage, $content);
// h1
$content = str_replace("</h1>", " — страница ".$curPage."</h1>", $content);
}
}
/***** Изменить мета теги в битриксе при постраничной навигации *****/
Данное событие “Вызывается при выводе буферизированного контента”. Это значит что она выполнится уже после того, как ваш HTML сформировался (про то какие события и функция выполняются в битриксе вы можете прочитать подробнее в официальной документации). При помощи регулярного выражения, мы находим необходимые нам теги и заменяем в них содержимое.
При переходе на вторую, третью и т.д. страницы мета теги примут следующий вид:
<title>Клиенты компании LIBERTY — страница 2</title>
<meta name="description" content="Среди наших партнеров крупнейшие российские и международные компании в сфере промышленности, транспорта, питания, телекоммуникаций и услуг. — страница 2" />
<h1>Клиенты — страница 2</h1>