A ação init é o lugar errado para fazer isso. Um lugar melhor seria em template_redirect, para que você afetasse apenas a visão de front-end do site e não as áreas de administração.
Existe uma função WP dedicada, ação ou filtro para usar ao adicionar / modificar os cabeçalhos HTTP?
Por enquanto eu apenas conecto uma chamada PHP header () no hook do WP 'init' assim:
add_action('init', 'add_header_xua');
function add_header_xua(){
if(!is_admin()){
header('X-UA-Compatible: IE=edge,chrome=1');
}
}
Mas esta é a maneira correta de fazer isso?
A ação init é o lugar errado para fazer isso. Um lugar melhor seria em template_redirect, para que você afetasse apenas a visão de front-end do site e não as áreas de administração.
Aqui está o código que usei, com base na pergunta original e na resposta de 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');
Depois de adicionar esse código ao seu arquivo functions.php, você pode verificar se ele funciona executando um teste em enlace para Certifique-se de que os cabeçalhos HTTP realmente mudaram.
Eu sei que já faz um tempo, mas se alguém mais se deparar com isso, eu encontrei um gancho do WordPress especificamente para modificar os cabeçalhos HTTP. O gancho é wp_headers
e é chamado no classe wp .
O primeiro argumento passado é uma matriz de cabeçalhos com o nome do cabeçalho como a chave. O segundo argumento é uma referência ao objeto da classe wp.
send_headers
é o método preferido sobre wp_headers
para essa situação, conforme demonstrado no códice .
is_admin() || add_action('send_headers', function(){
header('X-UA-Compatible: IE=edge,chrome=1');
}, 1);
Aqui está minha explicação sobre por que uma pergunta semelhante.