In short, all I need is to make my WordPress do this
$var = get_template_part( 'loop', 'index' );
but, get_template_part()
does not return HTML, it prints it.
I need this HTML stored in $var
- do you have any ideas how to do it?
In short, all I need is to make my WordPress do this
$var = get_template_part( 'loop', 'index' );
but, get_template_part()
does not return HTML, it prints it.
I need this HTML stored in $var
- do you have any ideas how to do it?
what about?
i'm sure there is a better way, but that seems to work for me.
This isn't what
get_template_part
was for, get_template_part essentially behaves like PHP's require function. Justin Tadlock writes a lot more about this here and also talks about a Wordpress function that might be more useful to you -locate_template
.Alternatively, if you did want to hack this functionality using get_template_part, you could use template buffering:
I'm not loving Output Buffering, though +1 for even thinking of that as an option!
I think Helga was on to something, but you need to still respect the child_themes and the theme path, so use
locate_template()
instead (also as Simon suggested).This works nicely, and can even be used inside a filter or (in my case) shortcode function (I wanted my shortcode to output the content within a template-style file, to separate the display layer from the logic layer).