添加/修改HTTP标头时是否有专用的WP函数,操作或过滤器?
现在,我只是将PHP header()调用挂接到WP'init'钩中,如下所示:
add_action('init', 'add_header_xua');
function add_header_xua(){
if(!is_admin()){
header('X-UA-Compatible: IE=edge,chrome=1');
}
}
但这是正确的方法吗?
添加/修改HTTP标头时是否有专用的WP函数,操作或过滤器?
现在,我只是将PHP header()调用挂接到WP'init'钩中,如下所示:
add_action('init', 'add_header_xua');
function add_header_xua(){
if(!is_admin()){
header('X-UA-Compatible: IE=edge,chrome=1');
}
}
但这是正确的方法吗?
Answers:
初始化操作是执行此操作的错误位置。更好的位置是template_redirect,这样您就只会影响网站的前端视图,而不会影响管理区域。
这是我使用的代码,基于原始问题和Dominic P的答案...
/*
* Modify HTTP header
*/
function add_header_xua($headers) {
// var_dump($headers); #=> if you want to see the current headers...
if (!is_admin()) {
$headers['X-UA-Compatible'] = 'IE=edge,chrome=1';
}
return $headers;
}
add_filter('wp_headers', 'add_header_xua');
将代码添加到functions.php文件后,可以通过在http://web-sniffer.net/上运行测试以确保HTTP标头确实已更改,来检查其是否正常。
我知道已经有一段时间了,但是如果有人偶然发现,我发现了一个专门用于修改HTTP标头的WordPress钩子。钩子wp_headers
在wp类中被调用。
传递的第一个参数是标头名称为键的标头数组。第二个参数是对wp类对象的引用。
send_headers
是在发送标头后触发的操作,是对发送wp_headers
标头之前应用的标头的过滤器。
send_headers
一个抄本页面这一事实说明了要使用的页面...
send_headers
在wp_headers
这种情况下,是首选的方法,如法典所示。
is_admin() || add_action('send_headers', function(){
header('X-UA-Compatible: IE=edge,chrome=1');
}, 1);