Битрикс — отдельные title для постраничного вывода

25.01.2018  09:38

Задача: сделать под Битрикс отдельные title, description, keywords для постраничного вывода.

Для этого я добавил отдельный инфоблок SEO с такими настройками:
Настройки инфоблока SEO

Свойства: DESCRIPTION, KEYWORDS, SECTION_CODE, PAGE.

В component_epilog.php шаблона компонента catalog.section в самый конец добавляем выборку из инфоблока:

////// seo
CModule::IncludeModule("iblock");
$IBLOCK_ID = 38;
$arSelect = array(
	"ID",
	"NAME",
	"IBLOCK_ID",
	"IBLOCK_SECTION_ID",
	"PROPERTY_URL",
	"PROPERTY_DESCRIPTION",
	"PROPERTY_KEYWORDS",
	"PROPERTY_SECTION_CODE",
	"PROPERTY_PAGE",
	"DETAIL_PICTURE",
	"DETAIL_PAGE_URL",
	"CODE",
);
$arFilter = array(
	"IBLOCK_ID" => $IBLOCK_ID,
	// "IBLOCK_ACTIVE" => "Y",
	"=PROPERTY_SECTION_CODE" => $arResult['PATH'][0]['CODE'],
	"=PROPERTY_PAGE" => $_REQUEST['PAGEN_1'],
	"ACTIVE_DATE" => "Y",
	"ACTIVE" => "Y",
);
$r = CIBlockElement::GetList(
	array(), 
	$arFilter, 
	false, 
	false, 
	$arSelect
);
while ($arCurrentItem = $r->GetNext()) {
	$APPLICATION->SetTitle($arCurrentItem["NAME"]);
	$APPLICATION->SetPageProperty("title", $arCurrentItem["NAME"]);
	$APPLICATION->SetPageProperty("title_top", $arCurrentItem["NAME"]);
	if (!empty($arCurrentItem["PROPERTY_DESCRIPTION_VALUE"]["TEXT"])) $APPLICATION->SetPageProperty("description", $arCurrentItem["PROPERTY_DESCRIPTION_VALUE"]["TEXT"]);
	if (!empty($arCurrentItem["PROPERTY_KEYWORDS_VALUE"]["TEXT"])) $APPLICATION->SetPageProperty("keywords", $arCurrentItem["PROPERTY_KEYWORDS_VALUE"]["TEXT"]);
}
////// seo END


Всё, теперь у нас есть отдельные титлы и мета-теги для страниц вида /catalog/category-code/?PAGEN_1=2


перейти в Блог | Блог (стр. 4)

Ударим лайками по бездорожью, разгильдяйству и бюрократизму!


Ключевые слова (тэги): 1С-Битрикс 44  PHP 56  SEO 14  web-программирование 80  

Вам есть что сказать — ну я же чую.
Высказаться о наболевшем, я выслушаю:
Имя


email (не публикуется)