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

编写WordPress插件和主题的时分,常常需求用到cookie,比方存取用户形态等,我之前编写的插件Ludou Simple Vote就用cookie来记载用户投票工夫,以完成简略的避免反复投票性能。
然而假如你在WordPress主题文件中间接应用php的setcookie()来发送cookie,那是齐全不行的。setcookie()文档中有一条内容:必需在任何其余输入发送前对 cookie 进行赋值,我怀疑WordPress初始化的时分曾经发送了其余输入,才招致setcookie生效。于是深化搜寻了Google,从一篇老外的文章中取得了以下办法:

1、在主题文件functions.php中增加以下代码,以设置cookie:
 
/**
* 函数称号,setcookie的相干参数等能够自行修正
*/
function set_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 'Welcome back!';
}
else {
echo 'Hello new visitor!';
}

留意事项
1、在WordPress中,任何 PHP 工夫函数,例如 time() 前往的工夫不正确,这些工夫函数前往的都是UTC+0时区的工夫,假如你想取得你在WordPress后盾 – 设置 – 惯例中设置的时区工夫,能够应用以下几个WordPress的工夫函数:
 
date_i18n('Y-m-d h: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插件和主题开发。

以上就是安达网络工作室关于《WordPress插件和主题编写时cookie应如何设置》的一些看法。更多内容请查看本栏目更多内容!

本文相关话题: cookie设置 setcookie WordPress
版权声明:本文为 安达网络工作室 转载文章,如有侵权请联系我们及时删除。
相关文章
wordpress抓取文章第一张近程图片保留到本地的办法

这个举措咱们应用一个hook来完成: 复制代码代码如下:add_action('publish_post', 'fetch_images',999); 再...

WordPress中用于获取搜寻表单的PHP函数应用解析

get_search_form 函数在 WordPress 中是用来提取预设的搜寻表单或许默许的搜寻表单的。由于民间这个函数没有...

WordPress简略三步完成首页文章显示缩略图(无插件)

喜爱折腾修正Wordpress主题的冤家,一定遇到过这样的成绩,想在首页文章中显示缩略图,有插件能够完成,不过...

WordPress应用自定义文章类型完成恣意模板的办法

本文实例讲述了WordPress应用自定义文章类型完成恣意模板的办法。分享给大家供大家参考,详细如下: 这几天...

编写PHP脚本肃清WordPress头部冗余代码的办法解说

wordpress头部的代码十分多,包括WordPress版本,前后文、第一篇文章、主页meta信息等各种冗余代码,这些对...

WordPress中设置Post Type自定义文章类型的实例教程

什么是自定义post? 不要想当然的以为这里的post就是就是指博客中的文章,它只不过是一个文章类的代理词...

需求提交

客服服务

亿鸽在线客服系统