WordPress:将`get_template_part()`保存到variables

总之,我需要的是让我的WordPress做到这一点

$var = get_template_part( 'loop', 'index' ); 

但是, get_template_part()不返回HTML,它会打印它。
我需要这个HTML存储在$var – 你有什么想法如何做到这一点?

这不是get_template_part原因,get_template_part本质上像PHP的require函数一样。 Justin Tadlock在这里写了更多的关于这个 ,还谈到了一个可能对你更有用的Wordpress函数 – locate_template

或者,如果您确实想使用get_template_part来破解此function,则可以使用模板缓冲:

 function load_template_part($template_name, $part_name=null) { ob_start(); get_template_part($template_name, $part_name); $var = ob_get_contents(); ob_end_clean(); return $var; } 

我不喜欢输出缓冲,尽pipe+1甚至认为这是一个选项!

我认为Helga正在做一些事情,但是你仍然需要尊重child_themes和主题path,所以使用locate_template()来代替(正如Simon所build议的那样)。

这很好,甚至可以用在一个filter或(在我的情况下)短代码function(我希望我的短代码输出模板样式文件内的内容,以显示层从逻辑层)。

 return file_get_contents(locate_template("template-file-name.php")); // don't forget the .php! 

关于什么?

 $file = file_get_contents(STYLESHEETPATH . '/template-part.php'); return $file; 

我相信有更好的办法,但这似乎对我有用。