我正在尝试做什么:
在我的循环中写一个elseif语句,为页面上的第一,第二和第三篇帖子显示不同的html标记。
代码
<div id="content">
<?php if (have_posts()) : ?>
<?php $count = 0; ?>
<?php while (have_posts()) : the_post(); ?>
<?php $count++; ?>
<?php if ($count == 1) : ?>
<!-- this is the 1st post -->
<article <?php post_class() ?> id="post-<?php the_ID(); ?>">
//the html for the first post
<?php the_title(); ?> //etc
</article> <!-- end div post -->
<?php elseif : ?>
<?php if ($count == 2) : ?>
<article <?php post_class() ?> id="post-<?php the_ID(); ?>">
//second post
<?php the_title(); ?> //etc
</article> <!-- end div post -->
<?php elseif : ?>
<?php if ($count == 3) : ?>
<article <?php post_class() ?> id="post-<?php the_ID(); ?>">
//third post
<?php the_title(); ?> //etc
</article> <!-- end div post -->
<?php else : ?>
<article <?php post_class() ?> id="post-<?php the_ID(); ?>">
all the other posts
<?php the_title(); ?> etc
</article> <!-- end div post -->
<?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>
</div> <!-- end div content -->
实际发生了什么:
无。我显然做错了。我已经对代码进行了评论,因此您应该知道我在这里要实现的目标。也许你可以指出我正确的方向!
这是一些有效的代码,第一篇文章与其他帖子有不同的标记。
<div id="content">
<?php if (have_posts()) : ?>
<?php $count = 0; ?>
<?php while (have_posts()) : the_post(); ?>
<?php $count++; ?>
<?php if ($count == 1) : ?>
<!-- this is the 1st post -->
<article <?php post_class() ?> id="post-<?php the_ID(); ?>">
//the html for the first post
<?php the_title(); ?> //etc
</article> <!-- end div post -->
<?php else : ?>
<article <?php post_class() ?> id="post-<?php the_ID(); ?>">
all the other posts
<?php the_title(); ?> etc
</article> <!-- end div post -->
<?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>
</div> <!-- end div content -->
我只想扩展它,以便为第一,第二和第三篇文章提供不同的HTML。
答案 0 :(得分:1)
问题
<?php elseif : ?>
<?php if ($count == 3) : ?>
应该是
elseif($count == 3) :
更好的方式
您可以使用get_template_part来降低嵌套的复杂性。为articlepart.php和articlepart-1.php等模板单独创建。
if(have_posts()):
$count = 0;
while (have_posts()) : the_post();
$count++;
get_template_part('articlepart', $count);
endwhile;
endif;