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

2022-08-30 18:15:22

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

我在网上冲浪,但我无法获得明确的想法,请帮我找到方法。


答案 1

您可以使用PHP或客户端使用JavaScript在服务器端检索和操作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 需要设置一个具有过去到期日期的 Cookie,例如

setcookie('my_cookie', null, strtotime('-1 day'));

对于JavaScript,我建议看看其中一个jQuery cookie插件(因为jQuery已经是Wordpress的一部分)。试用 http://plugins.jquery.com/project/Cookie


答案 2

在函数中尝试此代码.php在WordPress中玩Cookie

在WordPress中设置一个Cookie

add_action( 'init', 'my_setcookie' );
function my_setcookie() {
setcookie( 'my-name', 'my-value', time() + 3600, COOKIEPATH, COOKIE_DOMAIN   );
}

在WordPress中获取饼干

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 );
}

推荐