Si vous utilisez le module drupal xmlsitemap, il est possible d'ajouter des liens personnalisés vers des controleurs ou des vues via le sous module xmlsitemap_custom et l'UI accessible à l'uri : /admin/config/search/xmlsitemap/custom/add :
Image
Du coup ces « custom links » ne seront pas en config, donc non déployable.
Voici comment en créer via le code :
mon_module.post_update.php
/**
* Create Custom XML Sitemap Entries.
*/
function mon_module_post_update_create_xmlsitemap_custom_entries() {
$entries = [
[
'loc' => '/ma-page-fr',
'language' => 'fr',
],
[
'loc' => '/ma-page-en',
'language' => 'en',
],
[
'loc' => '/mon-autre-page-fr',
'language' => 'fr',
],
];
/** @var \Drupal\xmlsitemap\XmlSitemapLinkStorageInterface $linkStorage */
$linkStorage = \Drupal::service('xmlsitemap.link_storage');
$query = \Drupal::database()->select('xmlsitemap', 'x');
$query->addExpression("MAX(CAST(id AS INT))");
$query->condition('type', 'custom');
$id = (int) $query->execute()->fetchField();
foreach ($entries as $entry) {
$entry += [
'id' => ++$id,
'type' => 'custom',
'subtype' => '',
'priority' => 0.7,
'changefreq' => XMLSITEMAP_FREQUENCY_DAILY,
];
$linkStorage->save($entry);
}
}
Ajouter un commentaire