如何在Wordpress中设置,获取和销毁cookie?
我在网上浏览但我无法得到明确的想法,请帮我找到。
答案 0 :(得分:31)
您可以使用PHP在服务器端检索和操作cookie。
在PHP中,您使用setcookie()
设置Cookie。请注意,这必须在将任何输出发送到浏览器之前完成,这在Wordpress中可能是一个很大的挑战。你几乎可以限制一些早期运行的钩子,你可以通过插件或主题文件(例如functions.php
)来设置,例如
add_action('init', function() {
if (!isset($_COOKIE['my_cookie'])) {
setcookie('my_cookie', 'some default value', strtotime('+1 day'));
}
});
在PHP中检索cookie要容易得多。只需从$_COOKIE
超级全局中获取名称,例如
$cookieValue = $_COOKIE['my_cookie'];
取消设置Cookie需要在过去设置一个过期日期,例如
setcookie('my_cookie', null, strtotime('-1 day'));
对于JavaScript,我建议看看其中一个jQuery cookie插件(因为jQuery已经是Wordpress的一部分了)。试试http://plugins.jquery.com/project/Cookie
答案 1 :(得分:9)
在function.php中尝试使用此代码在wordpress中使用Cookie
在wordpress中设置Cookie
add_action( 'init', 'my_setcookie' );
function my_setcookie() {
setcookie( 'my-name', 'my-value', time() + 3600, COOKIEPATH, COOKIE_DOMAIN );
}
在wordpress中获取Cookie
add_action( 'wp_head', 'my_getcookie' );
function my_getcookie() {
$alert = isset( $_COOKIE['my-name'] ) ? $_COOKIE['my-name'] : 'not set';
echo "<script type='text/javascript'>alert('$alert')</script>";
}
在wordpress中删除或取消设置Cookie
add_action( 'init', 'my_deletecookie' );
function my_deletecookie() {
setcookie( 'my-name', '', time() - 3600, COOKIEPATH, COOKIE_DOMAIN );
}
答案 2 :(得分:1)
要设置在wordpress上的cookie,我使用了$ domain值。有了它,我就可以在整个网站上使用cookie值。
$domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false;
setcookie("cookie_name", 'cookie_value', 0, '/', $domain);
要取消设置
setcookie("cookie_name", '', time()-1000, '/');