如何在输出之前设置自定义cookie
题
在发送PHP标头之前,什么是检查/设置cookie的确定方式?是否有一个动作或过滤器,这将是钩住A的最佳场所 setcookie()
功能?
解决方案
取决于您是否需要检查WordPress的用户身份验证。如果您需要知道他们是否登录用户,请挂在 'init'
. 。否则,越早越好。
如果它应该在每个页面加载上发射,并且仅检查是否存在cookie并且不需要利用WP的任何API,我会将其放入定制的Mu-Plugin中 0000a.php
为了确保在任何非核心文件可能会意外发送标头之前发射。
其他提示
我认为 functions.php
绝对是在任何输出之前处理的,并且适合扩展位置。
至于钩子,也许 after_setup_theme
, ,之后就来了。
您可以创建一个函数来检查或设置cookie,但是必须检查wp-config.php,因为如果使用重定向,则文件将直接在重定向上的index.php之前访问。
这是来自Mark Jaquith写的插件 年龄验证 这要求用户在进入网站之前填写年龄验证表。我修改了 酒,啤酒,维特网站 我做到了。
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');
现在可能存在更好的方法。该插件是一年多以前写的。