【问题标题】:How can i get the cookie value from header to template pages in wordpress?如何在 wordpress 中从标题到模板页面获取 cookie 值?
【发布时间】:2011-09-05 05:38:14
【问题描述】:

我已经在 header.php 中设置了 cookie,如下所示

<?php if($_GET['signup'] == '123' && !isset($_COOKIE['sign'])){
    setcookie("sign", "1", time()+3600);
} ?>

现在我需要在页面signup.php 中获取这个cookie 值。但我无法检索该页面中的值。在 Signup.php 页面中,我使用以下代码检查 cookie,

<?php
/**
Template Name:  Sign Up
 */
$ck = $_COOKIE['sign'];
echo "cookie".$ck;
if(isset($_COOKIE['sign'])){
    header("Location: https://www.ap.com/app/signup.jsp?signup=123");
}
else
{
    header("Location: https://www.ap.com/app/signup.jsp");
}
?>

但它只进入 else 条件(如果还设置了 cookie)。好心的建议...

【问题讨论】:

  • 您将无法在 header.php 中设置 cookie。到那时,为时已晚。见stackoverflow.com/questions/6183162/…
  • 所以我需要在functions.php中设置cookie对吗?
  • 可能。 Wordpress 使得在输出开始之前设置任何标题变得困难(但并非不可能)

标签: php wordpress cookies


【解决方案1】:

尝试创建一个插件并使用 init 操作进行挂钩:http://codex.wordpress.org/Plugin_API/Action_Reference/init

function my_set_cookie() {
    if($_GET['signup'] == '123' && !isset($_COOKIE['sign'])) {
        setcookie("sign", "1", time()+3600);
    }
}

add_action('init', 'my_set_cookie');

【讨论】:

  • 如果我在functions.php中使用上述函数作为普通URL(dev.com/?signup=123)它可以工作。但它不支持像dev.com/application/?signup=123这样的URL..有什么问题?..cookie是set.but 条件在 signup.php 中失败
  • @Ravichandran 你的 signup.php 在同一个域中吗?
  • 是的。现在工作正常。非常感谢您的及时帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-21
  • 1970-01-01
相关资源
最近更新 更多