I have a Twig function in my theme that sets a random ID. The function works well if I include the entire function within any given template and then render the variable for that {{ randomID }} in the same template.

However, I'd like to be able to call this variable globally. I made an include file with the function and then call it in another Twig template like so:

  {% include directory ~ '/templates/slices/random_id.html.twig' with { randomID : 'randomID' } %}

... but now when I print {{ randomID }} in a given template where the include file is called, I do not see the random id print. I think I am on the right track here but not quite there yet.

I used these pages for reference:

  • I don't think the {{ randomID }} can be passed by {% include .... I guess you can pass the value in the alternative way. {% directory ~ '/templates/slices/random_id.html.twig' with 'randomID’: randomID %} – Jimmy Ko Aug 8 '16 at 9:45
  • If I just use directory, I get Unknown "directory" tag. If I stick with include directory, and update the syntax, it still does not seem to work but no errors. {% directory ~ '/templates/slices/random_id.html.twig' with {'randomID' : randomID} %} – Danny Englander Aug 8 '16 at 13:35
  • What about {% include '/templates/slices/random_id.html.twig' with randomID %} ? – Oana Hulpoi Aug 9 '16 at 8:20
  • @OanaHulpoi - yes I tried that according to twig.sensiolabs.org/doc/tags/include.html and it did not work either. – Danny Englander Aug 9 '16 at 23:52
  • 1
    Do you try create Twig function. You can see demo – MrD Aug 12 '16 at 2:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.