問題描述
在添加/修改 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');
}
}
但這是正確的做法嗎?
最佳解決方案
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 class 中調用。
傳遞的第一個參數是一個標題的數組,其頭名稱作為關鍵字。第二個參數是對 wp 類對象的引用。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。