CREATING URL ALIAS through programming IN DRUPAL
Hi, I recently came across a peculiar use case: i had to create a logic where the URL alias changes when selecting a particular taxonomy term referenced in a particular content type.
Let's say for simplicity, that we have two types of URLs depending on the two possible taxonomies:
- Taxonomy 1: \taxonomy_name\node:id\node:title.
- Taxonomy 2: \taxonomy name\node:title
We had already made a pattern using pathauto in our Drupal 8 website, so we have to disable this pathauto configuration because now we will have the URL alias logic in our custom_module.module. We are going to use a hook, i.e. hook_Entity_TYPE_insert() or hook_Entity_TYPE_update(). Choosing the inserted hook or the update hook depends on your use case in your particular project.
/**
* Implements hook_ENTITY_TYPE_insert().
*
*/
function my_custom_module_node_insert(NodeInterface $node){
}
In this custom link, we are using the path.alias.storage service to declare the URL path.
$path = \Drupal::service('path.alias_storage')->save("/node/" . $nid, "/".$tax_name."/" . $nid.'/'. $title, "en");
Hope this helps.
Have Any Project in Mind?
If you want to do something in Drupal maybe you can hire me.
Either for consulting, development or maintenance of Drupal websites.