如何在wordpress插件中获取会话变量


How to get session variables in wordpress plugins

你好,我是wordpress的新手,我创建了一个插件,需要打印所有会话数据。首先,我在插件文件夹中创建了一个文件,并添加了类似的代码

function myplugin_classname() {
    print_r($_SESSION);
}

我为类似的类tags的两个按钮设置了一个点击事件

$('.tags').on('click',function(){
     $.post('my_page.php',{val:$(this).val()});
});

在my_page.php中,我像一样

$_SESSION['tag'] = $_POST['val'];

但当在myplugin_classname打印会话变量时(通过刷新页面),它不会打印新分配的会话变量。。。。如何解决。。??我已通过theme-my-login登录启动会话。

您需要在my_page.php 的开头添加<?php session_start(); ?>

之后,为了销毁会话,您可以在wordpress中使用wp_loop操作。代码如下

<?php function custom_unset_session() {
   // your code 
   unset($_SESSION['tag']);
} 
add_action('wp_logout', 'custom_unset_session');
?>
// On your plugin  functions.php
function register_session() {
    if (!session_id())
        session_start();
}
add_action('init', 'register_session');
function your_function() {
    //Here you can unset your session variabl
}
add_action('wp_logout', 'your_function');
//Now you can use
$_SESSION['tag'] = $_POST['val'];

这两篇文章也很有帮助:

http://www.frank-verhoeven.com/using-session-in-wordpress/

http://devondev.com/2012/02/03/using-the-php-session-in-wordpress/