HTTPヘッダを追加/変更するときに使用する専用のWP関数、アクション、またはフィルタはありますか?
今のところ、PHP 'init'フックにWP header()呼び出しをフックするだけです。
add_action('init', 'add_header_xua');
function add_header_xua(){
if(!is_admin()){
header('X-UA-Compatible: IE=Edge,chrome=1');
}
}
しかし、これが正しい方法ですか?
Initアクションはそれをするのに間違った場所です。より良い場所は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クラス で呼び出されます。
渡される最初の引数は、キーとしてヘッダー名を持つヘッダーの配列です。 2番目の引数は、wpクラスオブジェクトへの参照です。