Карта сайта XML для картинок и каталога Битрикс

  • Vadim Tsukanov
    Разработчик
  • Дата публикации
    28.12.2023
  • Категория
    1С-Битрикс
xml для картинок битрикс
Задача:Генерация карты сайта для картинок на CMS Bitrix

Стандартный модуль для генерации sitemap.xml довольно скудный, а для картинок не делает вообще ничего. Сегодня попробуем разобраться, как сделать карту сайта и картинок для поисковых систем


require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule("iblock");

$dom = new domDocument("1.0", 'utf-8');
$urlset = $dom->createElement("urlset");
$urlset->setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9');
$urlset->setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:image','http://www.google.com/schemas/sitemap-image/1.1');

$arSelect = Array("ID", "NAME","IBLOCK_ID", "DETAIL_PAGE_URL", "DETAIL_PICTURE","DETAIL_TEXT");
$arFilter = Array("IBLOCK_ID"=>18);
$rsElement = CIBlockElement::GetList(Array("NAME" => "ASC"), $arFilter, false, Array("nPageSize"=>5), $arSelect);

while($obElement = $rsElement->GetNextElement())
{
    $descriptionString = mb_substr($obElement->fields['DETAIL_TEXT'],0,300);
    $googleLink =  'https://www.1sm.ru'.$obElement->fields['DETAIL_PAGE_URL'];
    $googleImg =  'https://www.1sm.ru'.CFile::GetPath($obElement->fields['DETAIL_PICTURE']);
        $url = $dom->createElement("url");
        $login = $dom->createElement("loc", $googleLink);
        $url->appendChild($login);
        $image = $dom->createElement("image:image");
        $imageLocation = $dom->createElement("image:loc", $googleImg);
        $name = $dom->createElement("image:title", $obElement->fields['NAME']);
        $description = $dom->createElement("image:caption", $descriptionString);
        $image->appendChild($name);
        $image->appendChild($description);
        $image->appendChild($imageLocation);
        $url->appendChild($image);
        $urlset->appendChild($url);
};
$dom->appendChild($urlset);
$dom->save($_SERVER['DOCUMENT_ROOT']."/img.xml");

 

Сеошники, и кто в теме — это реально необходимо делать? Данный запрос был от супер сеошника одного клиента.

Еще нет коммментариев. Будь первым!

Оформить заказ в Devstages