How can I make this PHP lines shorter?

2019-02-28 14:45发布

I have this loop at the same it will count the output:

while ($wp_query->have_posts()) : $wp_query->the_post(); $current++; $current2++;

Then to call the proper html class I need this for my design:

<div class="span4 <?php if($current == 0) { echo 'first'; } elseif($current == 1) { echo 'second'; } elseif($current == 2) { echo 'first'; } elseif($current == 3) { echo 'second'; } ?>" id="<? echo $current; ?>">

The $count starts from 0 and $count2 from 1. The output should be like this: if 0=first, 1=second, 2=first, 3=second and so forth. How can I make this expression shorter with unlimited number of $count? I hope my question is clear. Thank you for those who will help me here.

4条回答
Explosion°爆炸
2楼-- · 2019-02-28 15:07

If you are just using these class names for alternating CSS styles there is a much elegant way to do this using CSS3

Your HTML

<div class="span4" id="<? echo $current; ?>">

And in your css file

.span4:nth-child(even) {background: #CCC}
.span4:nth-child(odd) {background: #FFF}

else for a PHP solution the answer by Liam Wiltshire should work good.

source: CSS even and odd rules examples

查看更多
劳资没心,怎么记你
3楼-- · 2019-02-28 15:21

try this way

<div class="span4 
 <?php if ($curent%2 == 0){ echo 'first'; } 
  else {echo 'second';}?> id="<? echo $current; ?>"> 
查看更多
走好不送
4楼-- · 2019-02-28 15:23

If I understand what you are asking here, I think you want to alternate your divs with'first' and 'second' classes?

As such, you can use the % modulo operator (see http://php.net/manual/en/internals2.opcodes.mod.php)

<div class="span4 <?php echo ($current % 2 === 0 ? 'first' : 'second'); ?>" id="<? echo $current; ?>">
查看更多
聊天终结者
5楼-- · 2019-02-28 15:26

So you could use mod - best to use the full<?php tag for WordPress if that is what it is.

php test if number is odd or even

    // set up the html clips
    if($current % 2 == 0){
    $html_clips = 'first'; 
    }else{
    $html_clips = 'second'; 
    }
    if($current == 0) $html_clips = 'first';
    <div class="span4 <?php echo $html_clips ?>" id="<?php echo $current; ?>">
查看更多
登录 后发表回答