Задать Мета-теги (description, keywords, title, H1) для страницы на 1С-Битриск

Получить поля СЕО элемента в 1С-Битрикс

Пример вывода:

<?php
$ipropElementValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($arResult["IBLOCK_ID"], $arResult["ID"]);
$arResult["SEO"] = $ipropElementValues->getValues();

if (isset($arResult["SEO"]["SECTION_PAGE_TITLE"]) && $arResult["SEO"]["SECTION_PAGE_TITLE"] != "") {
	$APPLICATION->SetPageProperty("H1", $arResult["SEO"]["SECTION_PAGE_TITLE"]);
}

if (isset($arResult["SEO"]["ELEMENT_META_TITLE"]) && $arResult["SEO"]["ELEMENT_META_TITLE"] != "") {
	$APPLICATION->SetTitle($arResult["SEO"]["ELEMENT_META_TITLE"]);
}

if (isset($arResult["SEO"]["ELEMENT_META_KEYWORDS"]) && $arResult["SEO"]["ELEMENT_META_KEYWORDS"] != "") {
	$APPLICATION->SetPageProperty("keywords",  $arResult["SEO"]["ELEMENT_META_KEYWORDS"]);
}

if (isset($arResult["SEO"]["ELEMENT_META_DESCRIPTION"]) && $arResult["SEO"]["ELEMENT_META_DESCRIPTION"] != "") {
	$APPLICATION->SetPageProperty("description",  $arResult["SEO"]["ELEMENT_META_DESCRIPTION"]);
}

Для вывода H1 в нужной части страницы:

<h1><? $APPLICATION->ShowTitle('H1') ?></h1>

 

Пример в файле result_modifier.php у шаблона компонента project:catalog.list.retail:

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

$pageTitle = $APPLICATION->GetTitle();

if (isset($arResult["ITEMS"])) {
	if ($USER->IsAdmin()) {
		print "<pre>";
	}
	$isFirst = false;
	foreach ($arResult["ITEMS"] as &$item) {
		if ($isFirst === false) {
			$ipropSectionValues = new \Bitrix\Iblock\InheritedProperty\SectionValues($item["IBLOCK_ID"], $item["IBLOCK_SECTION_ID"]);
			$arResult["SEO"] = $ipropSectionValues->getValues();
	
			$APPLICATION->SetPageProperty("keywords",  "");
	
			if ($pageTitle != "") {
				$APPLICATION->SetPageProperty("H1", $pageTitle);
			} else if (isset($arResult["SEO"]["SECTION_PAGE_TITLE"]) && $arResult["SEO"]["SECTION_PAGE_TITLE"] != "") {
				$APPLICATION->SetPageProperty("H1", $arResult["SEO"]["SECTION_PAGE_TITLE"]);
			}
	
			if (isset($arResult["SEO"]["SECTION_META_TITLE"]) && $arResult["SEO"]["SECTION_META_TITLE"] != "") {
				$APPLICATION->SetTitle($arResult["SEO"]["SECTION_META_TITLE"]);
			}
			
			//if (isset($arResult["SEO"]["SECTION_META_KEYWORDS"]) && $arResult["SEO"]["SECTION_META_KEYWORDS"] != "") {
			//	$APPLICATION->SetPageProperty("keywords",  $arResult["SEO"]["SECTION_META_KEYWORDS"]);
			//}
			
			if (isset($arResult["SEO"]["SECTION_META_DESCRIPTION"]) && $arResult["SEO"]["SECTION_META_DESCRIPTION"] != "") {
				$APPLICATION->SetPageProperty("description",  $arResult["SEO"]["SECTION_META_DESCRIPTION"]);
			} else if (isset($arResult["SEO"]["SECTION_META_TITLE"]) && $arResult["SEO"]["SECTION_META_TITLE"] != "") {
				$APPLICATION->SetPageProperty("description",  $arResult["SEO"]["SECTION_META_TITLE"]);
			}
			$isFirst = true;
	
			if ($USER->IsAdmin()) {
				print_r($arResult["SEO"]);
			}
		}
		$ipropElementValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($item["IBLOCK_ID"], $item["ID"]);
		$item["SEO"] = $ipropElementValues->getValues();

		if ($USER->IsAdmin()) {
			print_r($arResult["SEO"]);
		}
	}
	if ($USER->IsAdmin()) {
		print "</pre>";
	}
}

Результат print_r:

Array
(
    [SECTION_META_TITLE] => Купить SIGMA (SPORT)/Детская в интернет-магазине
    [SECTION_META_DESCRIPTION] => Купите SIGMA (SPORT)/Детская в интернет магазине Медиса ЮГ. Доставка по Краснодарскому краю и РФ. SIGMA (SPORT)/Детская по низким ценам в наличии. Скидки и акции!
    [ELEMENT_META_DESCRIPTION] => SIGMA (SPORT)/Детская купить 
    [SECTION_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
    [SECTION_DETAIL_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
    [ELEMENT_PREVIEW_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
    [ELEMENT_DETAIL_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
    [SECTION_PAGE_TITLE] => SIGMA (SPORT)/Детская
)
Array
(
    [SECTION_META_TITLE] => Купить SIGMA (SPORT)/Детская в интернет-магазине
    [SECTION_META_DESCRIPTION] => Купите SIGMA (SPORT)/Детская в интернет магазине Медиса ЮГ. Доставка по Краснодарскому краю и РФ. SIGMA (SPORT)/Детская по низким ценам в наличии. Скидки и акции!
    [ELEMENT_META_DESCRIPTION] => SIGMA (SPORT)/Детская купить 
    [SECTION_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
    [SECTION_DETAIL_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
    [ELEMENT_PREVIEW_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
    [ELEMENT_DETAIL_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
    [SECTION_PAGE_TITLE] => SIGMA (SPORT)/Детская
)
Array
(
    [SECTION_META_TITLE] => Купить SIGMA (SPORT)/Детская в интернет-магазине
    [SECTION_META_DESCRIPTION] => Купите SIGMA (SPORT)/Детская в интернет магазине Медиса ЮГ. Доставка по Краснодарскому краю и РФ. SIGMA (SPORT)/Детская по низким ценам в наличии. Скидки и акции!
    [ELEMENT_META_DESCRIPTION] => SIGMA (SPORT)/Детская купить 
    [SECTION_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
    [SECTION_DETAIL_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
    [ELEMENT_PREVIEW_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
    [ELEMENT_DETAIL_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
    [SECTION_PAGE_TITLE] => SIGMA (SPORT)/Детская
)

Пример ALT картинки в фале template.php:

<?
// ...
?>
<!-- ... -->
<img class="product__img" src="<?= $item['PREVIEW_PICTURE'] ?>" alt="<?= (isset($item["SEO"]["ELEMENT_PREVIEW_PICTURE_FILE_ALT"]) && $item["SEO"]["ELEMENT_PREVIEW_PICTURE_FILE_ALT"] != "" ? $item["SEO"]["ELEMENT_PREVIEW_PICTURE_FILE_ALT"] : $item['NAME']) ?>"/>
<!-- ... -->
<?
// ...