最简单的解决方案(如需要最少的工作)是$count
全局变量。
所以在index.php
您将拥有:
global $post;
$count = 0;
并且在
content.php
你只需要使用
$global $post;
要访问它:
<?php
global $post;
if ($count == 0) { ?>
然而,我认为这是错误的做法。您的情况是,您实际上有3个不同的模板,并且希望根据当前的帖子数量选择要显示的模板。当前帖子数量与各个模板无关。这应该在循环中确定。
因此,我建议为每种类型的卡创建3个不同的模板文件。然后是内部索引。php根据当前数字选择要显示的内容。这样,您就不需要在模板之间传递变量。
So索引。php如下所示:
$count = 0;
if ( have_posts() ) : while ( have_posts() ) : the_post();
if ( $count == 0 ) {
get_template_part( \'content\', \'banner\' );
}
if ( $count > 2 ) {
echo \'<div class="row">\';
if ( $count % 2 != 0 ) {
get_template_part( \'content\', \'left-card\' );
} else if ( $count % 2 == 0 ) {
get_template_part( \'content\', \'right-card\' );
}
echo \'</div>\';
}
$count++;
endwhile; endif;
然后你会分开
content.php
进入
content-banner.php
,
content-left-card.php
, 和
content-right-card.php
使用每种类型的卡的模板。
PS:我刚刚复制了你的if语句$count
, 但在我看来,这个循环在第二次&;时根本不会输出任何东西;第三个岗位。我不确定这是否是故意的,但如果不是,$count > 2
应该是吧$count > 0
.