欢迎光临十大正规赌博平台!

十大正规赌博平台个人网站-十大正规赌博平台个人博客-杨照佳

正规博彩十大公司

关注世界十大博彩公司的博客网站

首页 > cms使用教程 > wordpress使用教程 >

WordPress插件和主题编写时cookie应怎样配置

发布时间:2016-12-04  编辑:正规博彩十大公司   点击:   

编写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插件和主题开拓。 本文地址:/cms/wordpress/14728.html
转载请注明出处。
分享是一种快乐,也是一种美德:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
博客首页 | WEB开发 | 网站运营 | CMS使用教程 滇ICP备14002061号-1