V bazi v tabeli posts ustvariš novo polje 'postlastincrease' in mu podaš tip 'timestamp'.
Poglej ID od pagea, ki ga želiš urejati. Pri tem IDju nastavi timestamp na trenutni čas.
V administraciji odpri page in okoli števila, ki ga želiš spreminjati dodaj naslednji html: <spand id="st"></span>
Tole zalimas v functions.php:
if ( !function_exists ( "check_and_increase_value" )){
function check_and_increase_value(){
global $wpdb;
$post_id = 2; //nastavimo ID strani, kjer se nahaja številka
$posts = $wpdb->get_row("SELECT ID, post_content, post_last_increase FROM " . $wpdb->prefix . "posts WHERE ID = " . $post_id);
$lastTime = strtotime($posts->post_last_increase);
$casovnaRazlika = time() - $lastTime;
if($casovnaRazlika > 3600){
$regex = '#\<span id="st"\>(.+?)\<\/span\>#s';
preg_match($regex, $posts->post_content, $matches);
$match = strip_tags($matches[0]);
$steviloUr = round($casovnaRazlika / 3600);
$rand = 0;
for( $i = 0; $i < $steviloUr; $i++ ){
$rand += rand(1,10);
usleep(20000);
}
$novaVrednost = $match + $rand;
$newValueContent = preg_replace($regex, $novaVrednost, $posts->post_content);
$newLastTime = date('Y-m-d H:i:s', time());
$wpdb->update( $wpdb->prefix . "posts", array("post_content" => $newValueContent, "post_last_increase" => $newLastTime ), array( "ID" => $post_id ) );
}
}
add_action( "init", "check_and_increase_value" );
}
ID od pagea popraviš tudi v funkciji - spremenljivka $post_id
Zadeva deluje na tak način, da preveri kdaj je bil zapis nazadnje osvežen (to se zgodi vsakič, ko obiskovalec pride na stran) in če je od zadnje vrednosti preteklo več kot 1 ura, potem spremeni vrednost. V primeru, da nihče ne odpre strani v npr. 8 urah, potem bo skripta sama nadoknadila še za manjkajoče ure.
Preden poženeš naredi backup baze, za katero ne odgovarjam ;) Kodo bi lahko naredil še malce bolj proper in jo optimiziral, samo mislem, da bo zadostovala tvojim potrebam ;)
Tole sem probal na najnovešji verziji WP, čista inštalacija.