Можно ли добавить в тег head значение rel="canonical" с указанием данных из свойства элементов инфоблока?

Как вывести значение свойства элементов в bitrix:news в секции head для установки произвольного canonical? У меня есть понимание, как вывести значение в секции body, но не получается сделать это в секции head. Буду благодарен за подробный ответ.
  • 20 ноября 2023 г. 11:29
Ответы на вопрос 1
Да, вы можете добавить в тег head значение rel="canonical" с указанием данных из свойства элементов инфоблока в Bitrix.

Для вывода значения свойства элементов в секции head вам понадобится использовать компонент bitrix:main.include. Вот пример кода, который позволит вам достать значение свойства элементов инфоблока и вывести его в теге head:

1. Откройте шаблон компонента bitrix:news и найдите файл .default/header.php.
2. В этом файле добавьте следующий код:

```
<?
$APPLICATION->AddBufferContent(function () {
    $elementId = $GLOBALS['ELEMENT_ID'];

    if ($elementId > 0) {
        $res = CIBlockElement::GetByID($elementId);
        if ($element = $res->GetNextElement()) {
            $elementFields = $element->GetFields();
            $canonicalValue = $elementFields['PROPERTY_CANONICAL_VALUE'];

            if ($canonicalValue) {
                return '<link rel="canonical" href="'.$canonicalValue.'">';
            }
        }
    }

    return '';
});
?>
```

3. Сохраните файл и проверьте результат.

Пример выше проверяет, если текущий элемент имеет значение свойства CANONICAL_VALUE, то добавляет соответствующий тег link с указанием значения свойства в тег head. Обратите внимание, что при использовании данного кода, вам необходимо заменить PROPERTY_CANONICAL_VALUE на код свойства, которое вы используете в своем инфоблоке для хранения ссылок на канонические URL-ы.

Надеюсь, это поможет вам вывести значение свойства элементов в теге head для установки произвольного canonical.
Похожие вопросы