Okay, so you can add shortcodes to WP template files like:
<?php echo do_shortcode('[my_awesome_shortcode]'); ?>
but what if the shortcode is intended to wrap around content like this:
[my_awesome_shortcode]
Hey, this is the content within the awesome shortcode.
[/my_awesome_shortcode]
I'm a bit unsure how to put that into a template file.
The solution that worked for me was to combine shortcodes into a single string, so
<?php echo do_shortcode('[my_awesome_shortcode]<h1>Hello world</h1>[/my_awesome_shortcode]'); ?>
will work!
If you have a long chain of shortcode commands you want to execute, create a separate string for them like this
$shortcodes = '[row]';
$shortcodes .= '[column width="2/3"]';
$shortcodes .= 'Content';
$shortcodes .= '[/column]';
$shortcodes .= '[column width="1/3"]';
$shortcodes .= 'More Content';
$shortcodes .= '[/column]';
$shortcodes .= '[/row]';
Then execute the entire thing like this
<?php echo do_shortcode($shortcodes); ?>