Номера страниц в Title и Description при постраничной навигации каталога

Просмотров: 2060

Задача: Часто SEO-специалисты просят добавить номер страницы, из постраничной навигации, в заголовок и описание раздела каталога. По найденным инструкциям в интернете, все предлагают сделать это через init.php. Рассмотрим вариант без него.

Номера страниц в Title и Description при постраничной навигации каталога
Не люблю городить код в init.php, если можно обойтись без этого.

Получаем SEO данные раздела каталога и добавляем в метатеги

Все просто: в файле section.php комплексного шаблона каталога, в самом низу (после отработки компонента catalog.section) вносим код:

if (!empty($_REQUEST['PAGEN_1'])) {
    $arResult['SECTION_ID'] = CIBlockFindTools::GetSectionID(
        $arResult['VARIABLES']['SECTION_ID'],
        $arResult['VARIABLES']['SECTION_CODE'],
        array(
            'IBLOCK_ID' => $arParams['IBLOCK_ID']
        )
    );
    $ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues(
        $arParams['IBLOCK_ID'],
        $arResult['SECTION_ID']
    );
    $seoProps = $ipropValues->getValues();
    $APPLICATION->SetPageProperty(
        "title",
        $seoProps['ELEMENT_META_TITLE'] . ' - страница №' . $_REQUEST['PAGEN_1']
    );
    $APPLICATION->SetPageProperty(
        "description",
        $seoProps['ELEMENT_META_DESCRIPTION'] . ' - страница №' . $_REQUEST['PAGEN_1']
    );
}

Проверяем, есть ли в запросе переменная PAGEN_1, которая указывает на текущую страницу в постраничной навигацией получаем идентификатора раздела, используется метод CIBlockFindTools::GetSectionID для получения идентификатора текущего раздела каталога.

Создается объект SectionValues для текущего раздела, используя его идентификатор и ID инфоблока.

Вызов метода getValues объекта SectionValues для получения массива с SEO-свойствами текущего раздела.

Устанавливаются значения для метатегов title и description, добавляя к ним номер текущей страницы из переменной PAGEN_1.

Получение ID раздела можно перенести в самый верх section.php если планируете получить все данные раздела и обработать их в шаблоне, следуя заметке
Получить поля раздела, включая пользовательские, в section.php

Стоимость разработки на 1С-Битрикс:

Индивидуальная разработка магазина

от 500 000 руб. от 5-ти недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Запуск сайта на готовом решении

от 100 000 руб. от 7-ми дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Мобильное приложение

от 500 000 руб. от 1-го месяца

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Сайт компании

от 350 000 руб. от 1-го месяца

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

Инфресурс

от 400 000 руб. от 5-ти недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Лечение сайтов от вирусов

от 40 000 руб. от 2-х дней

Выполню полную проверку сайта и окружения. В случае обнаружения вирусов проведу полный комплекс лечения проекта и закрытия лазеек.