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

Rav*_*thi 20 php cookies wordpress

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

我上网但我无法得到明确的想法,请帮我找到.

Phi*_*hil 35

您可以使用PHP在PHP或客户端检索和操作服务器端的cookie.

在PHP中,您使用设置cookie setcookie().请注意,这必须在将任何输出发送到浏览器之前完成,这在Wordpress中可能是一个很大的挑战.你几乎可以限制一些早期运行的钩子,你可以通过插件或主题文件(functions.php例如)设置,例如

add_action('init', function() {
    if (!isset($_COOKIE['my_cookie'])) {
        setcookie('my_cookie', 'some default value', strtotime('+1 day'));
    }
});
Run Code Online (Sandbox Code Playgroud)

在PHP中检索cookie要容易得多.只需从$_COOKIE超级全局中获取它们,例如

$cookieValue = $_COOKIE['my_cookie'];
Run Code Online (Sandbox Code Playgroud)

取消设置cookie需要在过去设置一个过期日期,例如

setcookie('my_cookie', null, strtotime('-1 day'));
Run Code Online (Sandbox Code Playgroud)

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

  • 在wordpress中设置cookie时,我会使用一些为它设置的常量:setcookie('my_cookie','some default value',strtotime('+ 1 day'),COOKIEPATH,COOKIE_DOMAIN,false); 如果没有路径和域,您将逐页设置cookie而不是站点. (6认同)
  • 此外 - 确保您为Cookie设置了正确的域名.将来您可能希望主域和子域都访问相同的cookie.如果您现在设置了cookie,则无需担心重置它们. (5认同)
  • 尽管cookie最好用早期的钩子设置,或者就像你在"Wordpress"中所说的那样,但总是可以选择稍后用`AJAX`响应来设置它. (2认同)

Smr*_*jan 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   );
}
Run Code Online (Sandbox Code Playgroud)

在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>";
}
Run Code Online (Sandbox Code Playgroud)

在wordpress中删除或取消设置Cookie

add_action( 'init', 'my_deletecookie' );
function my_deletecookie() {
setcookie( 'my-name', '', time() - 3600, COOKIEPATH, COOKIE_DOMAIN );
}
Run Code Online (Sandbox Code Playgroud)