Wordpress循环邮政柜台

时间:2011-10-15 07:01:20

标签: php wordpress

此代码为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&nbsp;$style_classes[$k]"; $style_index++; ?>>test</div>

所以第一个帖子有一个第一类,第二个类是第二个,第三个是第三个类,然后它重置第四个帖子有第一个类,第五个帖子有第二个类,等等等

有没有办法让前三个帖子中还有一个名为“special”的附加类?

2 个答案:

答案 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&nbsp;$style_classes[$k] $special"; 
      $style_index++; 
   ?>
test
</div>