Wordpress - 循环内帖子的不同html

时间:2013-08-08 06:11:05

标签: wordpress

我正在尝试做什么:

在我的循环中写一个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。

1 个答案:

答案 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;