while循环:在每秒结果上输出不同的东西

时间:2010-05-11 01:44:13

标签: php wordpress plugins while-loop

我正在为WordPress运行一个名为Category Posts Widget的插件:http://wordpress.org/extend/plugins/category-posts/

它使用while循环显示特定类别中所有帖子的名称。我希望得到它,以便在每个第二个输出上都有一个不同的类连接到li标签。

以下是插件的代码块:

// Post list
    echo "<ul>\n";

    while ( $cat_posts->have_posts() )
    {
        $cat_posts->the_post();
    ?>
        <li class="cat-post-item">
            <a class="post-title" href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a>

            <?php
                if (
                    function_exists('the_post_thumbnail') &&
                    current_theme_supports("post-thumbnails") &&
                    $instance["thumb"] &&
                    has_post_thumbnail()
                ) :
            ?>
                <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
                <?php the_post_thumbnail( 'cat_post_thumb_size'.$this->id ); ?>
                </a>
            <?php endif; ?>

            <?php if ( $instance['date'] ) : ?>
            <p class="post-date"><?php the_time("j M Y"); ?></p>
            <?php endif; ?>

            <?php if ( $instance['excerpt'] ) : ?>
            <?php the_excerpt(); ?> 
            <?php endif; ?>

            <?php if ( $instance['comment_num'] ) : ?>
            <p class="comment-num">(<?php comments_number(); ?>)</p>
            <?php endif; ?>
        </li>
    <?php
    }

    echo "</ul>\n";

我只是想在输出列表中的每一秒上得到它,li有一个不同的类,所以cat-post-item-alt就是这样。

谢谢,

瓦德

3 个答案:

答案 0 :(得分:0)

// ....
<? $type = ($type + 1) % 2; ?>
<li class="cat-post-item<?=$type ?>">

答案 1 :(得分:0)

以下是未经测试的,但它说明了基本原理。只需在循环的每个实例上切换一个布尔值。即使是帖子也会有类cat-post-item-even,因此您不必修改样式表而不必要。

发现for循环可以用于简单增量以外的其他东西。

两条已编辑的行标记为。

// Post list
echo "<ul>\n";

/* edited */    for($even=false;$cat_posts->have_posts();$even=!$even)
{
    $cat_posts->the_post();
?>
<!-- edited -->        <li class="cat-post-item<?php if($even) echo " cat-post-item-even"; ?>">
        <a class="post-title" href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a>

        <?php
            if (
                function_exists('the_post_thumbnail') &&
                current_theme_supports("post-thumbnails") &&
                $instance["thumb"] &&
                has_post_thumbnail()
            ) :
        ?>
            <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
            <?php the_post_thumbnail( 'cat_post_thumb_size'.$this->id ); ?>
            </a>
        <?php endif; ?>

        <?php if ( $instance['date'] ) : ?>
        <p class="post-date"><?php the_time("j M Y"); ?></p>
        <?php endif; ?>

        <?php if ( $instance['excerpt'] ) : ?>
        <?php the_excerpt(); ?> 
        <?php endif; ?>

        <?php if ( $instance['comment_num'] ) : ?>
        <p class="comment-num">(<?php comments_number(); ?>)</p>
        <?php endif; ?>
    </li>
<?php
}

echo "</ul>\n";

答案 2 :(得分:0)

$counter=1;

for ($i=0; $i<=10; $i++) {

    if ($counter%3===0) {
        echo 'something else';
    } else {
        echo 'normal';
    }

    echo '<br />';

    $counter++;
}