Своего писать я пока сомневаюсь, уровень не тот, а вот перевести полезную статью с официальной документации — это с удовольствием. Перевод местами может показаться несколько вольным, что касается формулировок, — иначе…

Иногда бывает так, что данный способ не подходит, тогда берём проверенный сниппет pdoResources и с его помощью создаём необходимую карту сайта.
Как же это сделать.
Для начала создаём шаблонирующий чанк googleSitemap.tpl:

      
  [­[~[­[+id]­]? &scheme=`full`]­]
  [­[+editedon:date=`%Y-%m-%dT%I:%M:%S%z`]­]

Как вариант, вы можете применять автоматическое прибавление ссылки к нынешнему ресурсу до якоря. Вставляйте код в плагин и на вкладке Системные события обозначьте в f событие(базируясь на данном посте)

if($modx->resource->get('id') !=$modx->config['site_start']) 
{
$modx->resource->_output…
[­[!pdoResources?
&tpl=`tpl-news`
&parents=`2,3`
&limit=`8`
&tplCondition=`parent`
&conditionalTpls=`{ "3":"tpl-news-2" }