Мы рекомендуем всегда по умолчанию задавать SEO настройки в виде шаблона в настройке соответствующего инфоблока. Далее, если будет необходима корректировка отдельных разделов/элементов, то делать это в конкретном разделе/элементе.
Содержимое закладки SEO для инфоблока и для раздела полностью идентично. В ней задаются шаблоны заголовков, ключевых слов, описаний для разделов и для элементов, а также шаблоны тегов для изображений разделов и элементов. На закладке SEO формы редактирования элементов присутствуют только те настройки, которые касаются самих элементов и их изображений.
Кроме простого текста можно использовать специальные конструкции в фигурных скобках:
{=this.Code}
символьный код раздела/элемента{=iblock.PreviewText}
описание инфоблока{=this.sections.name}
названия родительских разделов{=this.property.COLOR}
свойство инфоблока{=lower this.Name}
приведет значение к нижнему регистру{=concat this.sections.name " / "}
названия родительских разделов будут соединены с помощью слэша
Получить SEO шаблоны для инфоблока с идентификатором $iblockId:
$ipropIblockTemplates = new \Bitrix\Iblock\InheritedProperty\IblockTemplates($iblockId);
$templates = $ipropIblockTemplates->findTemplates();
print_r($templates);
Вывод:
Array
(
[SECTION_META_KEYWORDS] => Array
(
[ID] => 37
[CODE] => SECTION_META_KEYWORDS
[TEMPLATE] => {=lower this.Name} {=lower iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => N
)
[SECTION_META_DESCRIPTION] => Array
(
[ID] => 38
[CODE] => SECTION_META_DESCRIPTION
[TEMPLATE] => {=this.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => N
)
[SECTION_META_TITLE] => Array
(
[ID] => 41
[CODE] => SECTION_META_TITLE
[TEMPLATE] => {=this.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => N
)
[ELEMENT_META_TITLE] => Array
(
[ID] => 42
[CODE] => ELEMENT_META_TITLE
[TEMPLATE] => {=this.Name}. {=parent.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => N
)
[ELEMENT_META_DESCRIPTION] => Array
(
[ID] => 43
[CODE] => ELEMENT_META_DESCRIPTION
[TEMPLATE] => {=this.Name}. {=parent.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => N
)
[ELEMENT_META_KEYWORDS] => Array
(
[ID] => 45
[CODE] => ELEMENT_META_KEYWORDS
[TEMPLATE] => {=lower this.Name} {=lower parent.Name} {=lower iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => N
)
)
Получить SEO шаблоны для раздела с идентификатором $iblockSectionId:
$ipropSectionTemplates = new \Bitrix\Iblock\InheritedProperty\SectionTemplates($iblockId, $iblockSectionId);
$templates = $ipropSectionTemplates->findTemplates();
print_r($templates);
Вывод:
Array
(
[SECTION_META_KEYWORDS] => Array
(
[ID] => 37
[CODE] => SECTION_META_KEYWORDS
[TEMPLATE] => {=lower this.Name} {=lower iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[SECTION_META_DESCRIPTION] => Array
(
[ID] => 38
[CODE] => SECTION_META_DESCRIPTION
[TEMPLATE] => {=this.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[SECTION_META_TITLE] => Array
(
[ID] => 41
[CODE] => SECTION_META_TITLE
[TEMPLATE] => {=this.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[ELEMENT_META_TITLE] => Array
(
[ID] => 42
[CODE] => ELEMENT_META_TITLE
[TEMPLATE] => {=this.Name}. {=parent.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[ELEMENT_META_DESCRIPTION] => Array
(
[ID] => 43
[CODE] => ELEMENT_META_DESCRIPTION
[TEMPLATE] => {=this.Name}. {=parent.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[ELEMENT_META_KEYWORDS] => Array
(
[ID] => 45
[CODE] => ELEMENT_META_KEYWORDS
[TEMPLATE] => {=lower this.Name} {=lower parent.Name} {=lower iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
)
Получить SEO шаблоны для элемента с идентификатором $iblockElementId:
$ipropElementTemplates = new \Bitrix\Iblock\InheritedProperty\ElementTemplates($iblockId, $iblockElementId);
$templates = $ipropElementTemplates->findTemplates();
print_r($templates);
Вывод:
Array
(
[SECTION_META_KEYWORDS] => Array
(
[ID] => 37
[CODE] => SECTION_META_KEYWORDS
[TEMPLATE] => {=lower this.Name} {=lower iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[SECTION_META_DESCRIPTION] => Array
(
[ID] => 38
[CODE] => SECTION_META_DESCRIPTION
[TEMPLATE] => {=this.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[SECTION_META_TITLE] => Array
(
[ID] => 41
[CODE] => SECTION_META_TITLE
[TEMPLATE] => {=this.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[ELEMENT_META_TITLE] => Array
(
[ID] => 42
[CODE] => ELEMENT_META_TITLE
[TEMPLATE] => {=this.Name}. {=parent.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[ELEMENT_META_DESCRIPTION] => Array
(
[ID] => 43
[CODE] => ELEMENT_META_DESCRIPTION
[TEMPLATE] => {=this.Name}. {=parent.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[ELEMENT_META_KEYWORDS] => Array
(
[ID] => 45
[CODE] => ELEMENT_META_KEYWORDS
[TEMPLATE] => {=lower this.Name} {=lower parent.Name} {=lower iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
)
Изменить SEO шаблоны для инфоблока с идентификатором $iblockId:
$ipropIblockTemplates = new \Bitrix\Iblock\InheritedProperty\IblockTemplates($iblockId);
$templates = $ipropIblockTemplates->findTemplates();
$newTemplates = array(
'SECTION_META_TITLE' => $templates['SECTION_META_TITLE']['TEMPLATE']." дополнительный текст - {=this.Name}"
);
$ipropIblockTemplates->set($newTemplates);
Изменить SEO шаблоны для раздела с идентификатором $iblockSectionId:
$ipropSectionTemplates = new \Bitrix\Iblock\InheritedProperty\SectionTemplates($iblockId, $iblockSectionId);
$templates = $ipropSectionTemplates->findTemplates();
$newTemplates = array(
'SECTION_META_TITLE' => $templates['SECTION_META_TITLE']['TEMPLATE']." дополнительный текст - {=this.Name}"
);
$ipropSectionTemplates->set($newTemplates);
Изменить SEO шаблоны для элемента с идентификатором $iblockElementId:
$ipropElementTemplates = new \Bitrix\Iblock\InheritedProperty\ElementTemplates($iblockId, $iblockElementId);
$templates = $ipropElementTemplates->findTemplates();
$newTemplates = array(
'ELEMENT_META_TITLE' => $templates['ELEMENT_META_TITLE']['TEMPLATE']." дополнительный текст - {=this.Name}"
);
$ipropElementTemplates->set($newTemplates);
Удалить SEO шаблоны для инфоблока с идентификатором $iblockId:
$ipropIblockTemplates = new \Bitrix\Iblock\InheritedProperty\IblockTemplates($iblockId);
$ipropIblockTemplates->delete();
Удалить SEO шаблоны для раздела с идентификатором $iblockSectionId:
$ipropSectionTemplates = new \Bitrix\Iblock\InheritedProperty\SectionTemplates($iblockId, $iblockSectionId);
$ipropSectionTemplates->delete();
Удалить SEO шаблоны для элемента с идентификатором $iblockElementId:
$ipropElementTemplates = new \Bitrix\Iblock\InheritedProperty\ElementTemplates($iblockId, $iblockElementId);
$ipropElementTemplates->delete();
Работа со значениями SEO свойств инфоблоков
Получение значений SEO для инфоблока с идентификатором $iblockId:
$ipropIblockValues = new \Bitrix\Iblock\InheritedProperty\IblockValues($iblockId);
print_r($ipropIblockValues->getValues());
Получить значения SEO для раздела с идентификатором $iblockSectionId:
$ipropSectionValues = new \Bitrix\Iblock\InheritedProperty\SectionValues($iblockId, $iblockSectionId);
print_r($ipropSectionValues->getValues());
Вывод:
Array
(
[SECTION_META_KEYWORDS] => породы собак статьи о домашних животных
[SECTION_META_DESCRIPTION] => Породы собак. Статьи о домашних животных
[SECTION_META_TITLE] => Породы собак. Статьи о домашних животных
[ELEMENT_META_TITLE] => Породы собак. Статьи. Статьи о домашних животных
[ELEMENT_META_DESCRIPTION] => Породы собак. Статьи. Статьи о домашних животных
[ELEMENT_META_KEYWORDS] => породы собак статьи статьи о домашних животных
)
Получить значения SEO для элемента с идентификатором $iblockElementId:
$ipropElementValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($iblockId, $iblockElementId);
print_r($ipropElementValues->getValues());
Вывод:Array
(
[SECTION_META_KEYWORDS] => афганская борзая статьи о домашних животных
[SECTION_META_DESCRIPTION] => Афганская борзая. Статьи о домашних животных
[SECTION_META_TITLE] => Афганская борзая. Статьи о домашних животных
[ELEMENT_META_TITLE] => Афганская борзая. Породы собак. Статьи о домашних животных
[ELEMENT_META_DESCRIPTION] => Афганская борзая. Породы собак. Статьи о домашних животных
[ELEMENT_META_KEYWORDS] => афганская борзая породы собак статьи о домашних животных
)
Сбросить кэш SEO для инфоблока с идентификатором в переменной $iblockId:
$ipropIblockValues = new \Bitrix\Iblock\InheritedProperty\IblockValues($iblockId);
$ipropIblockValues->clearValues();
Сбросить кэш SEO для раздела инфоблока с идентификатором в переменной $iblockSectionId:
$ipropSectionValues = new \Bitrix\Iblock\InheritedProperty\IblockSectionValues($iblockId, $iblockSectionId);
$ipropSectionValues->clearValues();
Сбросить кэш SEO для элемента инфоблока с идентификатором в переменной $iblockElementId:
$ipropElementValues = new \Bitrix\Iblock\InheritedProperty\IblockElementValues($iblockId, $iblockElementId);
$ipropElementValues->clearValues();
Больше полезных материалов в нашем Telegram канале. Вступайте и будем на связи! https://t.me/bf_conversion