2013-04-20 8 views
16

Sono nuovo di scrivere un plugin ..Io sto avendo un file di testplugin.php e un file ajax.php ..Come utilizzare la sessione in wordpress plugin di sviluppo in

Il mio codice in 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" 

E il mio ajax.php è costituito da codice seguente

global $session; 

$abc = $session['arrayImg']; 

print_r ("abs== ".$abc); //displayin "abs== Array" 

E se l'uso session_start();

I ottenere seguente errore

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent 

Voglio solo inviare array di dati da un file del mio plugin per un altro file ...

+1

avviare la sessione nel gancio di avvio –

risposta

40

// Sul vostro plugin o temi functions.php

function register_session(){ 
    if(!session_id()) 
     session_start(); 
} 
add_action('init','register_session'); 

// Per impostare un data SESSION -

$_SESSION['arrayImg'] = $abc; 

// Per ottenere i dati su Ajax funzione agganciato -

function resolve_the_ajax_request(){ 
    if(!session_id()) 
     session_start(); 

    $abc = $_SESSION['arrayImg']; 
} 
+0

Benvenuti in StackOverflow, @Shazzad. – jcwenger

+2

Consente una festa :) @jcwenger – Shazzad

+1

Come distruggere la sessione quando non viene più utilizzata? –

1

Nel mio caso stavo usando quella variabile di sessione anche nell'attivazione del plugin. Così fece qualcosa di non ortodosso. Invece di definire il mio session_start in un hook, l'ho creato come prima riga nel mio plugin :).

Per diamine con i plugin, non appena WordPress scansiona il mio file avvia la sessione.

Alla fine non distruggo la sessione sul logout utente. Semplicemente disinserisco la mia variabile. Questo è nel caso in cui se altri plugin utilizzano anche la sessione. Se distruggo la sessione, potrebbe influire su altri plug-in.

Cheers.