我在编程方面经验很少,并且正在尝试编辑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;
}
我该如何做到这一点?
答案 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';
}
}