wordpress会话问题

时间:2012-03-23 22:03:59

标签: wordpress-plugin wordpress

我发现了很多关于使用会话的文章。 从我能够找到的最好的方法是添加一个init动作。 我一直在关注这篇文章 http://devondev.com/2012/02/03/using-the-php-session-in-wordpress/

但我必须遗漏一些东西。每次我用我的插件调用页面时都没有会话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 ();
 }

1 个答案:

答案 0 :(得分:0)

试试这个并添加到您的主题功能.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['myKey'] = "Some data I need later";

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

或者在wp-settings之前将其添加到wp-config.php(例如wp-config.php的顶部)

  if (!session_id())
session_start();