Drupal 7. Как программно добавить ссылку в sitemap.xml

Published: 18.04.2013

Думаю, многие используют модуль XML sitemap. Не буду лишний раз описывать его возможности, скажу только, что модуль не видит пути, которые добавляются программно через hook_menu.  Если включить суб-модуль XML sitemap custom, то можно добавить недостающие ссылки из админки сайта. Но это если ссылок одна-две. А если какой-нибудь самописный модуль генерирует несколько тысяч таких путей? В этом случае и добавлять в sitemap.xml эти ссылки нужно программно.

И делается это примерно так:

  1. $link = array(
  2.  
  3.   'type' => 'my_links',
  4.  
  5.  
  6.   'id' => $id,
  7.  
  8.  
  9.   'loc' => drupal_get_path_alias($my_url),
  10.  
  11.   'priority' => '0.5',
  12.   'changefreq' => '0',
  13.   'language' => 'und',
  14.  );
  15. xmlsitemap_link_save($link);

После всех манипуляций карту сайта нужно заново сгенерировать (/admin/config/search/xmlsitemap/rebuild).

В завершение приведу ссылку на остальные функции, составляющие XML sitemap API.