Rand post related question

Eu usei esse código no meu arquivo de function para aleatorizar posts em uma categoria e manter a ordem na paginação …

session_start(); add_filter('posts_orderby', 'edit_posts_orderby'); function edit_posts_orderby($orderby_statement) { $seed = $_SESSION['seed']; if (empty($seed)) { $seed = rand(); $_SESSION['seed'] = $seed; } $orderby_statement = 'RAND('.$seed.')'; return $orderby_statement; } 

O problema é que toda vez que o usuário volta ao site, ele vê a mesma ordem. Existe uma maneira de adicionar um componente de tempo à session? Como 30 minutos ou mais para redefinir-se?

Solutions Collecting From Web of "Rand post related question"

Esta é mais uma questão de PHP genérica, mas para o que vale a pena:

 if ( empty( $_SESSION['seed_time'] ) ) $_SESSION['seed_time'] = time(); if ( empty( $_SESSION['seed'] ) || time() > ( $_SESSION['seed_time'] + 30 * MINUTE_IN_SECONDS ) ) { // Seed session is empty, or session time is older than 30 minutes, generate new seed $_SESSION['seed'] = $seed = rand(); $_SESSION['seed_time'] = time(); } else { $seed = $_SESSION['seed']; } return "RAND($seed)";