此代码为Wordpress循环中的每个第一/第二/第三倍数添加一个唯一的类:
<?php
$style_classes = array('first','second','third');
$style_index = 0;
if (have_posts()) : while (have_posts()) : the_post(); ?>
<div <?php $k = $style_index%3; echo "class=post $style_classes[$k]"; $style_index++; ?>>test</div>
所以第一个帖子有一个第一类,第二个类是第二个,第三个是第三个类,然后它重置第四个帖子有第一个类,第五个帖子有第二个类,等等等
有没有办法让前三个帖子中还有一个名为“special”的附加类?
答案 0 :(得分:2)
你不应该将这么多代码压缩成一行。
相反,每行创建一个语句,这使您可以灵活地添加内容,例如您的特殊类:
<?php
$style_classes = array('first','second','third');
$style_index = 0;
if (have_posts()) :
while (have_posts()) :
the_post();
$style_index = $wp_query->current_post;
$classes = array('post');
$classes[] = $style_classes[$style_index % 3];
if ($style_index < 3) $classes[] = 'special'
$class = sprintf('class="%s"', implode(' ', $classes));
?>
<div <?php echo $class?>>test</div>
答案 1 :(得分:0)
只需在代码中添加一个if语句,如下所示 -
<div>
<?php
$k = $style_index%3;
if ($style_index < 3) $special = "special";
else $special = "";
echo "class=post $style_classes[$k] $special";
$style_index++;
?>
test
</div>