-
Vadim TsukanovРазработчик
-
Дата публикации28.12.2023
-
Категория1С-Битрикс
Задача:Генерация карты сайта для картинок на 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");
Сеошники, и кто в теме — это реально необходимо делать? Данный запрос был от супер сеошника одного клиента.