So stellen Sie benutzerdefinierte Cookies vor dem Ausgang ein
Frage
Was ist ein sicherer Weg, um Cookies zu überprüfen/festzulegen, bevor die PHP -Header gesendet werden? Gibt es eine Aktion oder einen Filter, der der beste Ort ist, um a zu hängen setcookie()
Funktion?
Lösung
Hängt davon ab, ob Sie die Benutzerauthentifizierung von WordPress überprüfen müssen oder nicht. Wenn Sie wissen müssen, ob sie ein angemeldeter Benutzer sind 'init'
. Ansonsten desto eher desto besser.
Wenn es etwas ist, das auf jeder Seitenladung abfeuern und nur über die Existenz des Keks prüft und keine der APIs von WP nutzen muss, würde ich es in einen benutzerdefinierten MU-Plugin namens einfügen 0000a.php
Um sicherzustellen, dass es ausgelöst wird, bevor keine Kerndateien versehentlich Header senden können.
Andere Tipps
Ich finde functions.php
wird definitiv vor jeder Ausgabe verarbeitet und passt für Erweiterungen an.
Wie für Hook, vielleicht after_setup_theme
, Es kommt direkt danach.
Sie können eine Funktion zum Überprüfen oder Festlegen eines Cookies erstellen, müssen jedoch nach wp-config.php suchen, da die Datei bei Verwendung eines Umleitungsdatei direkt vor Index.php auf der Umleitung zugegriffen wird.
Dies ist von einem Plugin, das Mark Jaquith schrieb Altersüberprüfung Dadurch muss der Benutzer ein Altersüberprüfungsformular ausfüllen, bevor er die Site betritt. Ich habe es für a geändert Alkohol, Bier, Witzseite Ich tat.
if ( !defined( 'ABSPATH' ) ) { // we're being called directly, to check the cookie
if ( file_exists('../../wp-config.php') )
include('../../wp-config.php');
elseif ( file_exists('../../../wp-config.php') )
include('../../../wp-config.php');
else
die('Could not find wp-config.php');
Ein besserer Weg könnte jetzt existieren. Das Plugin wurde vor über einem Jahr geschrieben.