在我登录到WP管理员之前,无法读取Cookie值

时间:2013-01-27 作者:Andrew

登录到WP管理员后,我可以刷新前端,并查看输出为“hello world”的cookie值。如果我注销管理员,然后刷新前端,cookie的值现在为“nothing”,如我的示例函数所示。

只有当我在线查看网站时才会发生这种情况。在本地测试时,我可以读取cookie,而无需登录到WP admin。有什么想法吗?

下面是我设置cookie的测试函数

function test_cookie() {
    setcookie( \'test-cookie\', \'hello world\', time()+1209600, \'/\');
}
add_action( \'init\', \'test_cookie\' );
下面是将cookie的值输出到页面上的函数

function output_test_cookie() {

    if ( isset( $_COOKIE[\'test-cookie\'] ) )
        echo $_COOKIE["test-cookie"]; // should output hello world, but only does this when logged into WP admin
    else
        echo \'nothing\';
}
add_action( \'template_redirect\', \'output_test_cookie\' );

1 个回复
SO网友:Andrew

看来我需要用一个更早的钩子。使用wpinit 操作挂钩允许我读取cookie的值,而无需先登录到管理员。

function output_test_cookie() {

if ( isset( $_COOKIE[\'test-cookie\'] ) )
    echo $_COOKIE["test-cookie"];
}
add_action( \'wp\', \'output_test_cookie\' ); // wp or init is needed

结束