Программно изменить url-псевдонимы материалов (нод)

Главные вкладки

Аватар пользователя mg.bsv mg.bsv 17 ноября 2020 в 13:58

Чтобы обновить множество старых url-псевдонимов и сделать их по новому формату, необходимо выполнить код:

<?php
$aliases 
= [
    
'/old/bad/url/format/name-1' => '/new/url/name-1',
    
'/old/bad/url/format/name-2' => '/new/url/name-2',

    
'/old/bad/url/format/name-n' => '/new/url/name-n',
];
$pathService = \Drupal::service('path.alias_storage');
$count 0;
foreach(
$aliases as $key => $value) {
  
$path $pathService->load(['alias' => $key]);
  if (
$path === false) {
    \
Drupal::messenger()->addWarning('Path not found: ' $key);
    continue;
  }
  
$path $pathService->save($path['source'], $value$path['langcode'], $path['pid']);
  
$count++;
}
\
Drupal::messenger()->addStatus('Done successfully: ' $count);
?>

Комментарии