SEO meta данные для категорий раздельно в CMS Bitrix


В CMS Bitrix по умолчанию, при редактировании раздела, во вкладке SEO можно проставить meta данные. Но есть проблема, эти данные дублируются на дочерние разделы, и нужно тогда и у них менять SEO данные.


Это не очень удобно и иногда нужно проставить SEO данные только одному конкретному разделу. 

Для решения данной проблему, следует создать произвольные поля под title, description и keywords.
Создадим
UF_CAT_METATITLE
UF_CAT_METADESC
UF_CAT_METAKEY





Далее, нужно в шаблоне компонента catalog вашей темы, в файле section.php в самом конце кода написать код, который приведён ниже.
$arCurSection[«ID»] — ID текущего раздела. В не стандартной теме может именоваться по другому.

<?
$arFilter=Array("IBLOCK_ID"=>$arParams["IBLOCK_ID"], "ID"=>$arCurSection["ID"], "GLOBAL_ACTIVE"=>"Y"); /* Определяем данные текущего раздела */
$uf_list=CIBlockSection::GetList(Array(), $arFilter, false, Array("UF_CAT_METATITLE", "UF_CAT_METADESC", "UF_CAT_METAKEY")); /* Получаем meta данные из созданных полей */
if($uf_value=$uf_list->GetNext()){
	$category_meta=$uf_value;
}

if(isset($category_meta["UF_CAT_METATITLE"]) && $category_meta["UF_CAT_METATITLE"]!=""){ /* Если поле Title не пусто, ставим значение meta title для раздела */
	$APPLICATION->SetPageProperty("title", $category_meta["UF_CAT_METATITLE"]);
}
if(isset($category_meta["UF_CAT_METADESC"]) && $category_meta["UF_CAT_METADESC"]!=""){ /* Если поле Description не пусто, ставим значение meta description для раздела */
	$APPLICATION->SetPageProperty("description", $category_meta["UF_CAT_METADESC"]);
}
if(isset($category_meta["UF_CAT_METAKEY"]) && $category_meta["UF_CAT_METAKEY"]!=""){ /* Если поле Keywords не пусто, ставим значение meta keywords для раздела */
	$APPLICATION->SetPageProperty("keywords", $category_meta["UF_CAT_METAKEY"]);
}
?>

В итоге получим такой результат


Для связи

Если у вас появились какие-либо вопросы, хотите получить индивидуальный совет или у вас есть интересное предложение, вы можете связаться через форму обратной связи.

Или написать прямо на почту info@bobreod.ru





Отправляя форму, вы соглашаетесь с нашей политикой конфиденциальности