0

すべてのページに真のランダム投稿用にこのコードを配置しましたが、ブラウザーを閉じた後もセッションは有効です。

関数.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 をリロードした場合、投稿はランダムであり、最後のセッションとは異なります。

4

2 に答える 2

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'] ;
}
于 2013-09-30T20:02:47.597 に答える