Bitrix CMS : Автоматическое добавление номеров страниц пагинации

Чтобы автоматически добавлять номера страниц пагинации в мета-теги на CMS Битрикс, можно использовать следующие подходы:

1. Решение через обработчик события (глобально для всех страниц)

Добавьте код в /bitrix/php_interface/init.php:

AddEventHandler('main', 'OnBeforeProlog', 'modifyMetaForPagination');
function modifyMetaForPagination() {
    global $APPLICATION;

    foreach ($_GET as $key => $value) {
        if (strpos($key, 'PAGEN_') === 0) {
            $pageNumber = (int)$value;
            if ($pageNumber > 1) {
                // Обработка Title
                $currentTitle = $APPLICATION->GetTitle();
                if ($currentTitle) {
                    $APPLICATION->SetTitle($currentTitle . ' - Страница ' . $pageNumber);
                }

                // Обработка Description
                $currentDesc = $APPLICATION->GetPageProperty('description');
                if ($currentDesc) {
                    $APPLICATION->SetPageProperty('description', $currentDesc . ' - Страница ' . $pageNumber);
                }
            }
            break;
        }
    }
}

Преимущества:

  • Работает для всех страниц с пагинацией.
  • Не требует изменения шаблонов компонентов.

2. Решение через шаблон компонента (например, для catalog.section)

Добавьте код в начале шаблона компонента (например, /bitrix/templates/ваш_шаблон/components/bitrix/catalog.section/your_template/template.php):

if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();

global $APPLICATION;

$pageNumber = (int)$_GET['PAGEN_1'];
if ($pageNumber > 1) {
    // Обновляем Title
    $originalTitle = $APPLICATION->GetTitle();
    $APPLICATION->SetTitle($originalTitle . ' - Страница ' . $pageNumber);

    // Обновляем Description
    $originalDesc = $APPLICATION->GetPageProperty('description');
    $APPLICATION->SetPageProperty('description', $originalDesc . ' - Страница ' . $pageNumber);
}

// Далее идет стандартный код шаблона

Преимущества:

  • Локальное изменение только для конкретного компонента.
  • Позволяет гибко настраивать формат для разных разделов.

Важные замечания:

  1. Проверка номера страницы: Код добавляет номер только если > 1 (чтобы избежать “Страница 1”).
  2. Кодировка и SEO: Убедитесь, что мета-теги не обрезаются (проверьте максимальную длину).
  3. Множественная пагинация: Если на странице несколько пагинаций (например, PAGEN_1 и PAGEN_2), код обработает первый найденный параметр.

Пример результата для PAGEN_1=2:

<title>Каталог напольных покрытий - Страница 2</title>
<meta name="description" content="Широкий выбор напольных покрытий. Страница 2">

Если есть вопросы задавайте в комментариях.