在wordpress中启动会话的正确方法是什么?

时间:2018-04-04 06:29:54

标签: php wordpress

我正在尝试使用 wp_set_auth_cookie(),但 $ _ SESSION 始终为空。在wordpress中启动会话和访问全局数组$ _SESSION的正确方法是什么?提前谢谢。

3 个答案:

答案 0 :(得分:2)

请检查我的答案。这可能有所帮助。 您必须在function.php

中使用此代码
add_action('init', 'start_session_wp', 1);
function start_session_wp() 
{
  if(!session_id())
  {
    session_start();
  }
}

答案 1 :(得分:1)

如果正确完成,您的functions.php文件现在应该在顶部看起来像这样。

add_action('init', 'start_session', 1);

function start_session() {
    if(!session_id()) {
        session_start();
    }

    add_action('wp_logout', 'end_session');
    add_action('wp_login', 'end_session');
    add_action('end_session_action', 'end_session');

    function end_session() {
        session_destroy ();
    }
}

现在,您可以通过访问$_SESSION变量,将数据添加到全局$_SESSION变量中,该变量将在用户会话期间在应用程序内的任何位置访问。变量是一个数组;下面是将数据添加到会话数组的示例。

$foo = 'Foo Data';
$_SESSION['foo'] = $foo;

答案 2 :(得分:0)

这将导致以下代码启动和销毁会话:

add_action('init', 'myStartSession', 1);
add_action('wp_logout', 'myEndSession');
add_action('wp_login', 'myEndSession');

function myStartSession() {
    if(!session_id()) {
        session_start();
    }
}

function myEndSession() {
    session_destroy ();
}

要将某些数据保存到会话中

$_SESSION['myKey'] = "Some data I need later";
And to get that data out at a later time

if(isset($_SESSION['myKey'])) {
    $value = $_SESSION['myKey'];
} else {
    $value = '';
}

如果您仍然对WordPress有疑问,请访问Elsner Technologies联系页面!