WordPress ブログのレベルアップ システムを作成しています。この問題はワードプレスよりも Php と数学に向けられていると思います。そのため、ここで質問しています。
レーティング (または xp と呼ぶことができます) カスタム フィールドが 25 の倍数になったときに、ユーザーに「レベル」を獲得してもらいたいです ( XP 要件を指数関数的に増加させたいと考えていますが、以下の要求 #2 を参照してください)。
これはfunctions.phpファイルにあります。
function movie_level() {
if ( is_single() ) {
global $post;
$movie_level = get_post_meta( $post->ID, "movie_level", true);
if ( !isset( $movie_level ) OR empty( $movie_level ) OR !is_numeric( $movie_level ) ) {
$movie_level = 1;
add_post_meta( $post->ID, "movie_level", $movie_level );
}
$vmeta = get_post_meta( get_the_ID(), 'ratings_score', true );
$movie_percentage_check = $vmeta / ( 25*$movie_level ) * 100;
if ( $movie_percentage_check == 100 ) {
$new_level = $movie_level + 1;
update_post_meta( $post->ID, "movie_level", $new_level );
$update_rating = $vmeta + 1;
update_post_meta( $post->ID, "ratings_score", $update_rating );
} return $movie_level;
}
}
評価が 25 に達すると、movie_movie レベルに +1 が追加されます。
私のsingle.phpファイルには次のものがあります:
$meta = get_post_meta( get_the_ID(), 'ratings_score', true );
$level= movie_level();
$perc = $meta / ( 25 * $level ) * 100;
echo '<div class="progress large-6 small-12 columns "><span class="meter" style="width:'.$perc.'%"><span></span></span></div>';
echo movie_level();
これは、進行状況バー css コンポーネントを使用して、次のレベルへの進行状況を表示します。
リクエスト
新しいレベルに到達したときに、$perc を再び 0% から開始するにはどうすればよいですか? 私の現在の方程式では、進行状況バーは、レベル 2 - レベル 3 ではなく、レベル 1 - レベル 3 (たとえば) から始まる進行状況を常に表示します。
コードを更新して、レベルごとに評価の要件が指数関数的に増加し、要求 #1 で求めていたものを達成するにはどうすればよいですか?