我正在尝试使用 wp_set_auth_cookie(),但 $ _ SESSION 始终为空。在wordpress中启动会话和访问全局数组$ _SESSION的正确方法是什么?提前谢谢。
答案 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联系页面!