Rand post related question

时间:2014-05-22 作者:Oli

我在我的函数文件中使用了该代码来随机化类别中的帖子,并保持分页的顺序。。。

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;
}
问题是,每次用户返回网站时,他都会看到相同的顺序。是否有方法将时间组件添加到会话中?比如30分钟左右的时间来重置自己?

1 个回复
SO网友:TheDeadMedic

这更像是一个普通的PHP问题,但它的价值在于:

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)";

结束

相关推荐

Current and next month posts

首先感谢阅读。我正在编写一个网站,要求本月有3个帖子标题,下个月有3个帖子标题(即将到来的活动)!我正在努力让它发挥作用。我正在使用wp\\u query来完成此操作,但我根本无法开始工作!任何帮助都将不胜感激:)谢谢我只是想进一步说明一下,因为我可能没有说清楚!我希望能够显示本月的3个事件/帖子,以及接下来的3个月的3个事件/帖子-我将如何做到这一点?请帮帮我,我有点疯了。。干杯这是当前第3个月博客标题的代码: <p class=\"blue\"><?ph