Session in Wordpress

wp_logoMit der PHP-Funktion “session_start” können Sessions gesetzt werden. Geht man nach der Anleitung von PHP vor, und setzt die Funktion an erste Stelle, treten oft Probleme in Wordpress auf, an denen man verzweifeln kann.

 

Neben Cookies die der User blockieren kann, gibt es die Möglichkeit Session zu setzen, die eine ID für eine gewisse Laufzeit auf dem Server ablegen.

 

Normaler Weise wird die Funktion “session_start()” am Anfang einer Datei, also vor dem “<html>” eingefügt. Die wäre in Wordpress die “header.php”. Aber falsch gedacht, denn zuerst wird die index.php aufgerufen, dort steht der Befehl “get_header”. Wenn jetzt vor der Funktion get_header ein Leerzeichen ist, kann die Session nicht gestartet werden. In den meisten Fällen erscheint eine Fehlermeldung.

 

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

 

Dieser Fehler kann auch erscheinen, wenn Plugins vor “get_header” gestartet werden.

 

Abhilfe bringt die Funktion “session_start” über die “functions.php” des Themes aufzurufen. Die Funktion sollte am Anfang der Datei sein.

function tec_session_start() {    
    session_start();
}
add_action( 'init', 'tec_session_start',1 );

Mit “init” wird die Funktion vor dem Template gestartet.

Die “1” erhöht die Priorität.

 

 

Weitere Informationen: