WordPress で Vary HTTP ヘッダを挿入する

Google の一番の推奨は「レスポンシブ・ウェブデザイン」だそうだけれど、WPtouch Pro を使ってるしということで Vary header を挿入することにした。functions.php に以下を記述。

function add_vary_header($headers) {
    $headers['Vary'] = 'User-Agent';
    return $headers;
}
add_filter('wp_headers', 'add_vary_header');

逆に標準ヘッダから不要なものを削除したいときは以下のように配列要素を削除する関数を作って add_filter してあげればよい。

function remove_x_pingback($headers) {
    unset($headers['X-Pingback']);
    return $headers;
}

通常テーマと WPtouch 用テーマ (こっちは root-functions.php) の両方に必要。wp_headers についてはリファレンスを見つけられず、ソースを追う+ググるで対処。


追記:
この記事を書いた後に某所で一部追記されたコードが紹介されてるけど、wp-admin 系のコードからは wp_headers が apply_filters されていないので is_admin の分岐は蛇足に思える。まあ、ついてても害はないし、プラグイン書くときに気にした方がよいのは確かなんだろうけど。