Wordpress, Ajax und Cookies

Sa 06 September 2014

Filed under Blog

Tags Web Development

Neulich bin ich bei der Entwicklung eines Wordpress-Plugins über die Notwendigkeit gestolpert ein Cookie zu setzen. So weit so gut und eigentlich auch kein Problem. Die Syntax einfach

setcookie("name", "wert", "Lebensdauer");

Schon mehrfach so bei anderen Projekten verwendet, aber bei Wordpress macht es "Probleme", da die Ajax-Requests über admin-ajax.php im Ordner wp-admin laufen und in meinem Fall das Cookie erst nach dem ersten Ajax-Request gesetzt wurde. Damit war das Cookie für das Plugin, das naturgemäß im Ordner wp-content liegt, nur bei Ajax-Requests verfügbar und nicht bei einem "normalen" Seitenaufruf. Zur Hilfe kommt die PHP-Dokumentation:

"path

Der Pfad auf dem Server, für welchen das Cookie verfügbar sein wird. Ist er auf '/' gesetzt, wird das Cookie innerhalb der gesamten domain verfügbar. Ist er auf '/foo/' gesetzt, wird das Cookie nur innerhalb des Verzeichnisses /foo/ sowie allen Unterverzeichnissen wie z.B. /foo/bar/ der domain verfügbar. Der Standardwert ist das aktuelle Verzeichnis, in dem das Cookie gesetzt wurde."

Cookie mit folgendem Code erstellen und es ist auch bei normalen Seitenaufrufen verfügbar:

setcookie("name", "wert", "Lebensdauer", "/");



Über die Seite

Die Inhalte der Seite stehen unter einer Creative Commons Namensnennung 4.0 International Lizenz zur Verfügung Creative Commons Lizenzvertrag

Powered by Pelican and Twitter Bootstrap. Icons by Font Awesome and Font Awesome More