Wordpress 循环,将特定 class 添加到第二个 post,第三个,重置,添加 class 等

Wordpress Loop, Add specific class to the 2nd post, 3rd, reset, add class etc

我正在尝试自定义自定义 post 类型并根据 post 的顺序更改输出。我有以下内容,但订单输出工作正常

输出看起来像这样(它在前 3 post 秒后跳过):

我希望它是这样出来的:

为什么到处都用?当你得到匹配时你还需要重置 $i 并且它应该工作。试试这个:

<?php
$args = array(
    'post_type' => 'testimonials',
    'posts_per_page' => -1
);

$posts = get_posts($args);
$i = 1;
foreach ($posts as $post) {
    setup_postdata($post);
    if($i%3 == 0) {
        echo get_the_title().' three';
        $i = 0;
    }
    elseif($i%2 == 0) {
        echo get_the_title().' two';
        $i = 0;
    }
    else {
        the_title();
    }
    $i++;
}
wp_reset_postdata();
?>

好的,我认为你的代码没问题,唯一的问题是你的更新 $i 很糟糕。我已经修改了您的代码,我认为它应该可以工作(如果不能,请告诉我)。

<?php
$args = array(
    'post_type' => 'testimonials',
    'posts_per_page' => -1
);

$query = query_posts($args);
?>
<?php $i = 1;
while (have_posts()) : the_post(); ?>

    <?php if ($i % 3 == 0) : ?>

        <?php the_title(); ?> three

    <?php elseif ($i % 2 == 0) : ?>    

        <?php the_title(); ?> two

    <?php else : ?>

        <?php the_title(); ?> 

    <?php endif; ?>
    <?php  /* Comment this line */ ?>
    <?php /* $i++; */?>
    <?php /* Add this one */ ?>
    <?php $i = ($i >= 3) ? 1 : ($i + 1); ?>

<?php endwhile; ?>
<?php wp_reset_query(); ?>