希望在每次加载/刷新时加载不同的模板部件

时间:2017-06-19 作者:DevHelp

我基本上有一个网站,我有几个不同的模板标题,我想通过加载get_template_part.

基本思想是,当有人第一次访问该站点时,他们应该看到一个随机标题,然后每次后续访问都会看到一个不同的随机标题,直到他们看到所有标题,在这种情况下,它将是随机的。

我以前尝试过,但使用这段代码,它将只加载一个头,并且在每次刷新时只持续加载该头。

<?php
  $order = array(1, 2, 3);
shuffle($order);

get_template_part( \'headers/feat\', array_shift($order) );
    ?>
我知道我很可能需要SESSIONS, 或者一些与cookie相关的东西。有人能给我指出正确的方向吗?谢谢

1 个回复
SO网友:Johansson

您可以使用setcookie() 设置包含已访问标头数组的cookie。这是一个简单的示例:

function header_cookies() {
    // Check if any cookie is set
    if(isset($_COOKIE[headers_visited])) {
        $headers = $_COOKIE[headers_visited];
        // Now add your headers to cookie and save it again. Let\'s remove the old one first
        unset( $_COOKIE[headers_visited] );
        // Store an array of headers here
        $header_array;
        // Now set the new cookie
        setcookie( headers_visited, $header_array, time() +3600 /* For an hour */ );
        // Return the array to use wherever you want
        return $header_array;
    } else {
        // Set all the headers into an array
        $header_array;
        // Set the cookie
        setcookie( headers_visited, $header_array, time() +3600 /* For an hour */ );
        // Return the data
        return $header_array;
    }
}
// Run header_cookies() this when WordPress loads
add_action(\'init\',\'header_cookies\');
现在,您已经设置了cookie,并拥有了要在模板中使用的set头数组。

请注意,您需要使用implode()explode() 使用存储在cookie中的数组。

结束

相关推荐

使用$_POST和$_SESSION进行分页

我的网站上有一个页面,左栏是一组代表分类法的复选框,右栏是属于所选分类法的帖子列表。用户可以选中或取消选中这些框,并提交一个表单,然后在右侧列中显示结果。这很好,下面是我使用的简化代码: <?php session_start(); if (isset($_POST)) { $_SESSION[\'filters\'] = $_POST; } ?> <div id=\"sidebar\"> <f