WordPress插件和主题编写时cookie应如何设置

WordPress插件和主题编写时cookie应如何设置,第1张

WordPress插件和主题编写时cookie应如何设置

编写WordPressc软件和主题时经常使用Cookies。但是如果你用php的setcookie()立即发送WordPress主题文档中的cookie,那时候就彻底坏了。我怀疑WordPress重置时已经发送了其他输出,这会使setcookie无效。

撰写WordPress软件和主题的情况下,常常必须采用cookie,例如存储客户情况等,我以前撰写的软件LudouSimpleVote就用cookie来纪录客户网络投票時间,以完成简易的避免反复网络投票作用。
可是假如你在WordPress主题文档中立即应用php的setcookie()来发送cookie,那时彻底不好的。setcookie()文本文档中有一条內容:务必在一切别的輸出发送前对cookie开展取值,我怀疑WordPress复位的情况下早已发送了别的輸出,才造成setcookie无效。因此深层次检索了Google,从一篇外国人的文章内容中得到了下列方式:

1、在主题文档functions.php中加上下列编码,以设定cookie:

复制代码编码以下:
/**
*涵数名字,setcookie的有关主要参数等能够自主改动
*/
functionset_newuser_cookie(){
if(!isset($_COOKIE['sitename_newvisitor'])){
setcookie('sitename_newvisitor',1,time()1209600,COOKIEPATH,COOKIE_DOMAIN,false);
}
}
add_action('init','set_newuser_cookie');
//上边一行编码还可以改为下边一行编码
//add_action('after_setup_theme','set_newuser_cookie');

2、随后在必须启用cookie值的地区载入cookie

复制代码编码以下:
if(isset($_COOKIE['sitename_newvisitor'])){
echo'Welcomeback!';
}
else{
echo'Hellonewvisitor!';
}

常见问题
1、在WordPress中,一切PHP时间函数,比如time()回到的時间有误,这种时间函数回到的全是UTC0时区的時间,假如你要得到你在WordPress后台管理–设定–基本中设定的时区时间,能够应用下列好多个WordPress的时间函数:

复制代码编码以下:
date_i18n('Y-m-dh:i:s');//回到当地时间
current_time('timestamp');//回到当地时间的Unix时间格式
current_time('mysql');//回到适用MySQL的时间格式
time()get_option('gmt_offset')*3600;//手工制作得到当地时间的Unix时间格式

因此,发送cookie的情况下,你能将time()改为date_i18n('U')或current_time('timestamp')
2、cookie的无效時间也是必须留意的一个难题,服务端的時间和手机客户端的時间很有可能会不一样,因此会造成cookie无效時间很有可能跟你构想的不太一样,因此假如你根据之上方式发送了cookie,可是好歹都获得不上值,那麼你能试一下将cookie的无效时间设置长些。

好啦,WordPress中设定Cookies的方式就详细介绍到此,你能根据之上编码举一反三,用以你的WordPress软件和主题开发设计。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/772583.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-03
下一篇2022-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存