如果我理解正确,峰值位置是基于歌曲处于相同位置的最长时间(我觉得很奇怪),下面是您可以做的:
有三个元字段::song\\u meta\\u peak
::song\\u meta\\u weeks\\u now
::song\\u meta\\u weeks\\u peak
歌曲第一次进入列表时,您可以设置peak
无论职位是什么,都是metaweeks_now
和weeks_peak
metas到1
每周,如果职位不变,您将在weeks_now
元
每当位置改变时,首先检查weeks_now
meta以了解歌曲在前一位置的时间,以及是否超过weeks_peak
您已设置peak
元到之前的位置并覆盖weeks_peak
匹配weeks_now
. 之后,您设置weeks_now
返回到1
.
希望有帮助
Code Example
$oldWeeks = get_post_meta( $post_id, \'song_meta_weeks_now\', true );
$oldWeeksPeak = get_post_meta( $post_id, \'song_meta_weeks_peak\', true );
if ( POS. NOT CHANGED ) {
update_post_meta( $post_id, \'song_meta_weeks_now\', $oldWeeks + 1 );
} else {
update_post_meta( $post_id, \'song_meta_weeks_now\', 1 );
if ( $oldWeeks > $oldWeeksPeak ) {
update_post_meta( $post_id, \'song_meta_weeks_peak\', $oldWeeks );
update_post_meta( $post_id, \'song_meta_peak\', PREVIOUS POS. );
}
}