我发现了很多关于使用 session 的文章。 据我所知,最好的方法是添加一个 init 操作。 我一直在关注这篇文章 http://devondev.com/2012/02/03/using-the-php-session-in-wordpress/
但我一定遗漏了什么。每次我用我的插件调用页面时,都没有 session ID。
我错过了什么吗?
谢谢你的帮助
add_action('init', 'my_GB_StartSession', 1);
add_action('wp_logout', 'my_GB_myEndSession');
add_action('wp_login', 'my_GB_myEndSession');
if (!function_exists('my_GB_StartSession')) {
function my_GB_StartSession() {
if(!session_id()) {
errorLog("session starting\n");
session_start();
}
}
}
function UnitNet_GB_myEndSession() {
session_destroy ();
}
最佳答案
试试这个并添加到您的主题的 function.php 中:
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 是您的了,您可以在代码中随意使用:
$_SESSION['myKey'] = "Some data I need later";
if(isset($_SESSION['myKey'])) {
$value = $_SESSION['myKey'];
} else {
$value = '';
}
或将其添加到 wp-config.php 之前的 wp-settings(例如 wp-config.php 的顶部)
if (!session_id())
session_start();
关于WordPress session 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9847053/