为什么只在以管理员身份登录时才设置PHP Cookie Via Plugin,而不是普通用户?和其他问题

时间:2013-10-28 作者:Damainman

起初我以为这是浏览器问题,但我的代码似乎只在用户登录管理员时设置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。所以只为随机用户和常规用户设置。但如果太难,则不需要

虽然上述代码只有在以管理员身份登录时才起作用,但我对插件和设置cookie都是新手,不确定我的代码是最新的还是最有效/正确的方式。

Update:

所以我注意到还有其他网站功能只能作为管理员使用。。例如从强大的pro插件获取参数。

我尝试禁用几乎所有的插件,但仍然存在相同的问题。某些原因导致某些东西只有在以管理员身份登录时才能工作,但不确定是什么原因。

1 个回复
最合适的回答,由SO网友:Damainman 整理而成

我的主机wpengine。com正在缓存导致此问题的页面。我不得不要求他们打开特定页面的缓存,以使一切恢复正常。

结束

相关推荐

提前注册Taxonomy,以便可以在unctions.php和admin-ajax.php中使用它

这是对this post, 概述在函数中无法使用get\\u terms函数的原因。php(实际上是通过ajax/admin\\u ajax.php调用)。我可以在任何帖子、任何页面上获取术语(自定义税),除了在我的ajax函数中。在转储get\\u terms的值时,我收到了可怕的“分类法不存在”错误。问题是,在调用函数查找术语后,分类法被注册。问题是,如何尽早注册税务以便使用此功能?注册自定义帖子类型和分类的代码是函数中的第一个。php(通过外部php提供,以保持functions.php干净)/**