WordPress插件开发中的会话

时间:2013-11-04 作者:Vignesh Pichamani

我想知道会话在wordpress中被禁用了。我试图在wordpress中找到一些关于使用会话变量的信息。我尝试了以下方法在wordpress站点中实现会话变量。

我试过这样做。

<?php 
session_start();

$_SESSION[\'firstname\'] = $_POST[\'firstname\'];

?>
如果我回应$_SESSION[\'firstname\'] 是不来了。所以我在google上找到了它不支持的原因。

function register_session() {
    if (!session_id())
        session_start();
}

add_action(\'init\', \'register_session\');
我尝试并实现了上述方法,但它也不起作用。

现在我正在插件中集成会话,所以我不想编辑核心文件。因为我在做自定义插件开发。

如何在wordpress插件中启用会话。任何建议都很好

谢谢

3 个回复
最合适的回答,由SO网友:Nicolai Grossherr 整理而成

你的代码似乎没有错,只是我会怎么做-看看我的answer 在这里所以问题是你的课程开始了吗?尝试调试此:

// do you have a session id
$s_id = session_id();
print_r($s_id);

// can you declare a bogus session variable, yours might just be empty
$_SESSION[\'bogus\'] = \'bogus\';
print_r($_SESSION[\'bogus\']);
另一个可取的步骤是降低add_action() 电话:

add_action(\'init\', \'register_session\', 1);
只是为了确保在其他操作/功能需要会话之前,您已经准备好了会话。

SO网友:Sam Wilson

是否可以使用Transients? i、 e.:

set_transient( \'username\', $_POST[\'firstname\'], MINUTE_IN_SECONDS );
那么就不需要进行会话了。

SO网友:saikat074

在插件中,使用wp-hook存储会话变量。

add_action(\'wp\', \'start_my_session\');
function start_my_session() {
    session_start();
    $_SESSION[\'myvar\'] = \'this is my var\';
}
现在,您可以从任何地方访问它。例如:

add_action(\'wp_footer\', \'show_session_var\');
function show_session_var() {
    if(isset($_SESSION[\'myvar\'])) echo $_SESSION[\'myvar\'];
}

结束

相关推荐

private functions in plugins

我开发了两个插件,其中一个功能相同(相同的名称,相同的功能)。当试图激活两个插件时,Wordpress会抛出一个错误,因为它不允许我以相同的名称定义函数两次。有没有一种方法可以使这个函数只对插件私有,而不使用面向对象编程,也不简单地重命名函数?我不想使用OOP,因为我首先要学习它。此外,我不想重命名该函数,因为我可能也想在其他插件中使用它,而重命名感觉不太合适。