post数据实际上并没有传递到模板部件。有一个全局变量称为$post
其中包含有关当前帖子的数据,例如帖子的ID。
使用调用模板部件时get_template_part()
, WordPress将查看模板内部并运行其中的任何内容,并在循环中输出它。
例如,如果你使用the_title()
在模板部件中,WordPress将尝试运行the_title()
函数,这取决于帖子ID。但是,由于$post
变量在模板部件中可用,调用$post->ID
将会成功,并且the_title()
函数将成功打印出当前帖子的标题。
如果要将一些数据传递到模板部件,可以使用set_query_var();
相反考虑这样一个循环:
if (have_posts()) {
while(have_posts()) {
the_post();
set_query_var( \'sample\', \'sample_value\' );
get_template_part("template/part", "example");
}
}
这将把示例传递到模板文件,可以使用以下代码行检索模板文件:
extract( $wp_query->query_vars );
然后打印人:
var_dump( $sample);
我希望现在您对该功能的工作原理有了更深入的了解。