web-dev-qa-db-ja.com

プラグイン開発でwordpressでセッションを使用する方法

プラグインを書くのは初めてです。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 
_

プラグインの1つのファイルから別のファイルにデータの配列を送信したいだけです...

21
Vaibs_Cool

//プラグインまたはテーマで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'];
}
45
Shazzad

私の場合、プラグインのアクティベーションでもそのセッション変数を使用していました。それで、非正統的な何かをしました。 session_startをフックで定義する代わりに、プラグインの最初の行として作成しました:)。

プラグインを使用して、wordpress=ファイルをスキャンするとすぐにセッションを開始します。

最後に、ユーザーのログアウト時にセッションを破棄しません。変数の設定を解除するだけです。これは、他のプラグインもセッションを使用している場合に備えてです。セッションを破棄すると、他のプラグインに影響する場合があります。

乾杯。

1
Talha