如何在If ... else语句中将CSS类应用于PHP变量

时间:2016-09-05 05:42:44

标签: php css wordpress

我在编程方面经验很少,并且正在尝试编辑Wordpress主题中的.php文件,因此在我试图解释我的困境时请记住这一点。

我目前在主题中使用此代码计算1到10的平均分数,并以星号显示$average用户。

if( !function_exists('reviews_rating_display') ){
    function reviews_rating_display( $average ){
        if( empty( $average ) ){
            $average = 0;
        }
        $stars = array();
        if( $average < 0.5 ){
            for( $i=0; $i<10; $i++ ){
                $stars[] = '<i class="fa fa-star-o"></i>';
            }
        } elseif( $average < 1 ){
            $stars[] = '<i class="fa fa-star"></i>';
            for( $i=0; $i<10; $i++ ){
                $stars[] = '<i class="fa fa-star-o"></i>';
            }
        } else{
            $flag = false;
            for( $i=1; $i<=10; $i+=0.5 ){
                if( $i <= $average ){
                    if( floor( $i ) == $i ){
                        $stars[] = '<i class="fa fa-star"></i>';
                    }
                } else{
                    if( !$flag ){
                        if( floor( $i ) == $i ){
                            $stars[] = '<i class="fa fa-star-half-o"></i>';
                        }
                        $flag = true;
                    } else{
                        if( floor( $i ) == $i ){
                            $stars[] = '<i class="fa fa-star-o"></i>';
                        }
                    }
                }
            }
        }
        echo join( "", $stars);
    }
}

但是,我希望将$average显示为一个数字。

如果我将代码保留为此

if( !function_exists('reviews_rating_display') ){
    function reviews_rating_display( $average ){
        if( empty( $average ) ){
            $average = 0;
        }
        echo number_format((float)$average, 1, '.', '');
    }
}

它将分数显示为数字,而不是星星,这就是我想要的。但我想通过if else循环将CCS类应用于乐谱。

If $average is <6, bad score
If $average is >6 but <8, okay score
If $average is >8, excellent score

我会根据分数来应用这些课程。

.bad-score {
    text-align: center;
    font-family: Arial,Helvetica,sans-serif;
    font-size: 18px;
    color: #ffffff;
    background: #ff0000;
    padding: 5px;
    width: 25px;
    height: 25px;
    float: right;
}

.excellent-score {
    border-radius: 50%;
    text-align: center;
    font-family: Arial,Helvetica,sans-serif;
    font-size: 14px;
    color: #ffffff;
    background: #66cc33;
    padding: 5px;
    width: 30px;
    height: 30px;
    float: right;
}

.ok-score {
    border-radius: 50%;
    text-align: center;
    font-family: Arial,Helvetica,sans-serif;
    font-size: 18px;
    color: #ffffff;
    background: #ffcc33;
    padding: 5px;
    width: 30px;
    height: 30px;
}

我该如何做到这一点?

1 个答案:

答案 0 :(得分:0)

怎么样?
function reviews_rating_class($average) {
    if($average > 8) {
        return 'excellent-score';
    } else if($average <= 8 && $average >= 6) {
        return 'ok-score';
    } else {
        return 'bad-score';
    }
}