设置Cookie,然后立即刷新页面

时间:2011-11-13 作者:Brooke.

我写了一个小的WordPress插件(mobileesp-for-wordpress) 这会将移动用户重定向到移动站点。它基于mobileesp.

插件本身工作正常问题是我添加了一个查看完整站点的选项。此功能通过检查cookie来工作,如果存在cookie,则不要将用户重定向到移动站点。

这也可以,但用户必须单击链接两次。一次设置cookie,第二次将其带回WordPress站点。可以找到完整代码here 但我认为这是相关的部分。

$get_cookie_check = $_GET[\'view_full_site\'];
if(isset($get_cookie_check)){
    if($get_cookie_check ==\'true\'){
        //set the cookie
        setcookie("mobileesp_wp_full_site", \'true\', time()+86400, "/", $domain);
    }
}
//cookie variable
$full_site_cookie= $_COOKIE[\'mobileesp_wp_full_site\']; 

//make sure the target url is set and full site cookie isn\'t set
if((get_option(\'mobileesp_wp_target_url\') != \'\') && ($full_site_cookie !="true")){
    //check for a mobile browser and redirect the user 
}
}

暂时的解决方案是检查移动站点上的cookie,然后重定向它们,但是否有更好的方法来做到这一点。

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

这个setcookie 函数准备HTTP cookie标头,以便在下一次页面加载时发送。这就是为什么$_COOKIE superglobal不会自动更新。

您可以手动更新$_COOKIE 用于当前请求。把这个放在你的下面setcookie() 生产线:

$_COOKIE[\'mobileesp_wp_full_site\'] = \'true\';
顺便说一下,我不喜欢使用字符串\'true\', 但就整数而言(01). 然后,您可以像这样简单地检查它们:! empty($_GET[\'view_full_site\']).

结束

相关推荐

Integrating plugins in themes

我找不到讨论这个的帖子,所以开始这篇。我目前正在为3.1+开发一个相当复杂的主题,我的意思是,除了样式和常规的前端功能之外,我还在主题的核心包括后端和前端的插件。因此,为了使这一点更有条理,我将其分为三个问题:集成插件是一种常见的做法吗</自动更新主题/插件有什么影响/复杂之处</在不破坏现有功能的情况下,包含每个插件的最佳方式是什么