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;
我相信有更好的办法,但这似乎对我有用。