我目前在我的wordpress上使用以下代码随机显示帖子但不重复它们。这与我刷新页面时保持原样不同。更改显示内容的唯一方法是清除缓存和cookie。是否有可能使它在每次刷新时都会发生变化?
这是我的代码:
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;
}
答案 0 :(得分:1)
删除if
条件,在当前情况下 - rand
选项仅在会话为空时设置。所以它在第一次工作,即会话没有设置。
$seed = rand();
$_SESSION['seed'] = $seed;
而不是
if (empty($seed)) {
$seed = rand();
$_SESSION['seed'] = $seed;
}
答案 1 :(得分:0)
你可以试试
session_start();
session_regenerate_id();
echo session_id();
这会在每次刷新时返回唯一的会话ID