如何在Wordpress中设置,获取和销毁cookie?

时间:2011-05-31 04:59:21

标签: php wordpress cookies

如何在Wordpress中设置,获取和销毁cookie?

我在网上浏览但我无法得到明确的想法,请帮我找到。

3 个答案:

答案 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, '/');