【问题标题】:How do I retain session variables in wordpress?如何在 wordpress 中保留会话变量?
【发布时间】:2020-10-16 09:12:58
【问题描述】:

我一直在 Wordpress 页面模板中开发自定义仪表板,而从未调用 get_header 或 get_footer,并且我遇到了 SESSION 变量的问题。

似乎是随机保留/删除它们。

这是我非常简单的代码sn-p:

<?php
session_start();

print_r($_SESSION);

$_SESSION['test'] = 'test';

?>

这个小 sn-p 应该在第一次尝试时打印一个空数组,然后打印测试变量。

相反,它的作用是按随机间隔打印变量。通过刷新页面 20 次 ~4 次你可以看到变量,其余 16 次它是空的。

有没有办法防止这种情况发生?

【问题讨论】:

标签: php wordpress session


【解决方案1】:

要设置会话,您必须确保尚未设置标题,并且还包括 session_write_close() 否则 WordPress 中的某些环回功能将失败。引用的答案都没有提到关于 session_write_close 的这个小花絮。

function dd_register_session(){
    if(!session_id() && !headers_sent()) {
        session_start();
        session_write_close();
    }
}
add_action('after_setup_theme','dd_register_session', 1);

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

function end_session() {
    session_destroy ();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-01
    • 2011-04-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2014-07-11
    • 1970-01-01
    相关资源
    最近更新 更多