起初我以为这是浏览器问题,但我的代码似乎只在用户登录管理员时设置cookie。如果您未登录管理员帐户,则不会设置cookie。使用Windows 8在3种不同的浏览器上进行了测试。
仅供参考,以下是我认为是跨浏览器问题时的问题链接:
我的代码位于我创建的一个激活的自定义插件中,位于一个名为custom\\u functions的文件中。php(我的插件中唯一的文件)。这是我的第一个插件,但到目前为止,我在其中放置的其他功能似乎工作正常。
以下是我使用的代码:
add_action( \'init\', \'visitor_cookie\', 1);
function visitor_cookie() {
if (!isset($_COOKIE[\'returning_visit\'])) {
$traffic_type = \'hd\';
$timestring = microtime();
$pieces = explode(" ", substr($timestring, 2));
$pieces[0] = "1".substr($pieces[0],0,3);
$visitor_id = $traffic_type.dechex($pieces[1]) . dechex($pieces[0]);
$expire = time()+60*60*24*360;
$path = \'/\';
$domain = parse_url(get_option(\'siteurl\'), PHP_URL_HOST);
setcookie(
\'returning_visit\',
$visitor_id,
$expire,
$path,
$domain,
false
);
}
}
Notes:
<我只想为任何不是管理员的访问者/用户设置cookie。所以只为随机用户和常规用户设置。但如果太难,则不需要有效期应为1年
虽然上述代码只有在以管理员身份登录时才起作用,但我对插件和设置cookie都是新手,不确定我的代码是最新的还是最有效/正确的方式。
Update:
所以我注意到还有其他网站功能只能作为管理员使用。。例如从强大的pro插件获取参数。
我尝试禁用几乎所有的插件,但仍然存在相同的问题。某些原因导致某些东西只有在以管理员身份登录时才能工作,但不确定是什么原因。