Closed icamys closed 2 years ago
`<?php
namespace Icamys\SitemapGenerator\Extensions;
use InvalidArgumentException; use XMLWriter;
class GoogleImageExtension { private static $requiredFields = [ 'loc', ];
public static function writeImageTag(XMLWriter $xmlWriter, string $loc, array $extFields)
{
self::validate($loc, $extFields);
$xmlWriter->startElement('image:image');
$xmlWriter->writeElement('image:loc', $extFields['loc']);
$xmlWriter->writeElement('image:title', htmlentities($extFields['title'], ENT_QUOTES));
if (isset($extFields['caption'])) {
$xmlWriter->writeElement('image:caption', $extFields['caption']);
}
if (isset($extFields['geo_location'])) {
$xmlWriter->writeElement('image:geo_location', $extFields['geo_location']);
}
if (isset($extFields['license'])) {
$xmlWriter->writeElement('image:license', $extFields['license']);
}
$xmlWriter->endElement();
}
public static function validate($loc, $extFields)
{
$extFieldNames = array_keys($extFields);
if (count(array_intersect(self::$requiredFields, $extFieldNames)) !== count(self::$requiredFields)) {
throw new InvalidArgumentException(
sprintf("Missing required fields: %s", implode(', ', array_diff(self::$requiredFields, $extFieldNames)))
);
}
}
}`
@seyitahmettanriver Thanks for the code. I'll take a look at it in my spare time.
https://developers.google.com/search/docs/advanced/sitemaps/image-sitemaps