I have a module where I created a route /page/tag/{term} that uses a controller for modifications to how the term page is handled.
The problem is that when any page displays these term links, they don’t use the custom route, but the default /taxonomy/term/{id}.
How can I tell the taxonomy term links to use my custom route?
Adding the path as the term alias skips over the custom route entirely.
OR, how would I get rid of the custom route and create a pathauto pattern using the same path, but tell those pages to use my custom controller?
I have tried both methods without success…
Here is what I’ve tried with modifying the existing route:
modulename.services.yml
services:   modulename.route_subscriber:     class: DrupalmodulenameRoutingRouteSubscriber     tags:       - { name: event_subscriber, priority: 100 } 
modulename/src/Routing/RouteSubscriber.php
namespace DrupalmodulenameRouting;  use DrupalCoreRoutingRouteSubscriberBase; use SymfonyComponentRoutingRouteCollection;  /**  * Listens to the dynamic route events.  */ class RouteSubscriber extends RouteSubscriberBase {      /**     * {@inheritdoc}     */     protected function alterRoutes(RouteCollection $collection) {         if ($route = $collection->get('entity.taxonomy_term.canonical')) {             // i've tried both of these             $route->addDefaults(['_controller' => 'DrupalmodulenameControllerListController::list_by_tag' ']);             $route->addDefaults(['_title' => 'test']);         }     }  } 
Edit: after seeing this, I thought about keeping my custom route and using the alterRoutes to change the links…
$route->setPath('/page/tag');
That worked, but it adds on ?taxonomy_term=123
How can I get the term name into the url? /page/tag/term
Update:
Still can’t figure out how to get the term name from the route (without loading the taxonomy entity – I’d imagine that is too much load)
Also, I will need to make sure I’m in a specific vocabulary before changing the route.
Any ideas?