我把这段代码放在所有页面中的真随机帖子中,但关闭浏览器后会话仍然存在。
的functions.php
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;
}
如何在wordpress中重启会话?如果同一个用户重新加载index.php,我想发帖是随机的,与上次会话不一样。
答案 0 :(得分:1)
随便随便做一个:
$_SESSION['seed'] = rand() ;
或检查上次访问过的页面:
if (!empty($_SESSION['last_page']) && $_SESSION['last_page'] === $_SERVER['PHP_SELF']){
$_SESSION['seed'] = rand();
} else {
$_SESSION['last_page'] = $_SERVER['PHP_SELF'] ;
}
答案 1 :(得分:1)
您可以使用unset();
删除会话变量。在每个页面重新加载unset($_SESSION['seed']);
或使用session_destroy();
另一种解决方案是,您始终可以使用$_SESSION['seed']=rand();