我是新手写的插件..我有一个testplugin.php文件和一个ajax.php文件..
我在testplugin.php中的代码是
global $session;
print_r($abc); //$abc is array of my data ..
$session['arrayImg']=$abc; //saving data in session
echo $session['arrayImg']; //displayin "Array"
我的ajax.php包含以下代码
global $session;
$abc = $session['arrayImg'];
print_r ("abs== ".$abc); //displayin "abs== Array"
如果使用session_start();
我收到以下错误
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
我只想将我的插件的一个文件中的数据数组发送到另一个文件......
答案 0 :(得分:45)
//在你的插件或主题functions.php
上function register_session(){
if( !session_id() )
session_start();
}
add_action('init','register_session');
//设置SESSION
数据 -
$_SESSION['arrayImg'] = $abc;
//获取ajax挂钩函数的数据 -
function resolve_the_ajax_request(){
if( !session_id())
session_start();
$abc = $_SESSION['arrayImg'];
}
答案 1 :(得分:1)
在我的情况下,我也在插件激活中使用该会话变量。所以做了一些非正统的事情。而不是在钩子中定义我的session_start,而是将它作为我插件中的第一行:)。
要插入插件,只要wordpress扫描我的文件,它就会启动会话。
最后,我不会在用户注销时销毁会话。我只是取消了我的变量。这是为了以防万一其他插件也在使用会话。如果我销毁会话,它可能会影响其他插件。
干杯。