Routes, URLs, and Links in Twig Templates for Drupal 8, Drupal 9

Last updated January 7, 2021
Theming8.9.x/9.0.x

If you want to create a link to a internal page in a Twig template, and there's not already a variable in the template that contains the URL you want to link to, you'll need to determine the route of the thing you want to link to and then use the Twig url() or path() functions to generate appropriate URLs. In most cases when you want to create a link to an entity that is being output by the current template there's an existing helper variable to use. For example, in a node.html.twig template file there's a {{ url }} variable that points to the current node. For other scenarios, like hard-coding a link to the /about page, you'll need to do a little more work.

In this tutorial we'll:

  • Learn how to determine the route or path of an internal page
  • Use the Twig url() and path() functions to create full URLs for navigation

By the end of this tutorial you should be able to create links to any internal page via Twig.