我已根据帖子创建了一个关卡系统。
Level 1 = 1-25 posts
Level 2 = 26-50 posts
Level 3 = 51-250 posts, etc...
我还想展示一个进度条
通常你会这样:
$author_posts = 15;
$progress = ($author_posts * 100) / 25; //(level 1)
进度百分比为60%
。
但是,如果用户已经到达level 3
,我应该使用什么?
if( $author_posts >= '250' ) {
$progress = '100';
} elseif( $author_posts < '51' ) {
$progress = '0';
} else {
$progress = // what should I use here?
}
<div class="progress-bar" style="width:<?php echo esc_attr( $progress ); ?>%;"></div>
答案 0 :(得分:2)
您所包含的if
块意味着用户的进度为0%,直到达到该级别的下限。那么,我们可以假设,一旦违反,该边界下面的任何帖子都不会算作百分比吗?这意味着只有51到250的帖子计为百分点,给出200个帖子(含)的范围。所以1 post = 0.5%。
如果是的话
$progress = round( ( ( $author_posts - 51 ) / 200 ) * 100 )
51个帖子= 0%
52个帖子= 1%(向上舍入)
200个帖子= 75%
此公式的可重用版本可能类似于
$progress = round( ( ( $author_posts - $lower ) / ( ( $upper - $lower ) + 1 ) ) * 100 )
在每个级别内重新定义$upper
和$lower
边界。
答案 1 :(得分:0)
使用此:
if( $author_posts >= '250' ) {
$progress = '100';
} elseif( $author_posts < '51' ) {
$progress = '0';
} else {
$progress = (($author_posts - 50) / 200) * 100;
}
<div class="progress-bar" style="width:<?php echo esc_attr( $progress ); ?>%;"></div>