Is it possible to output the template name being used? Using a global variable or something similar? I am wanting to check which template is being used in a conditional.
4 Answers
This applies to Craft 2. For Craft 3+, see hashchange's answer.
You can get the current template’s name like so:
{{ _self.getTemplateName() }}
-
2Careful with this; it returns an object of type
Twig_Markup
, which is then casted to a string. If you need template name strictly as a string, use_self.getTemplateName().__toString
– AlexCommented Apr 21, 2017 at 15:09
In Craft 3, {{ _self.getTemplateName() }}
throws an error, but {{ _self }}
does the trick.
Post marked as answer doesn't work for me nowadays. For me works:
{{ craft.app.requestedParams.template }}
I don't believe this is currently possible outside of the context of a Craft plugin. Inside of a plugin, you could probably do it through a Twig extension so that you have access to the template instance, where you could call $template->getTemplateName(), which is part of Twig's Twig_Template abstract class.
-
1Thanks Brad, would you consider adding a tag for it a some point?– GarethCommented Jun 25, 2014 at 5:57
-