it-swarm.com.de

WP Funktion/Filter zum Ändern von http-Headern?

Gibt es eine spezielle WP -Funktion, Aktion oder einen Filter, die bzw. der beim Hinzufügen/Ändern der HTTP-Header verwendet werden kann?

Im Moment binde ich einfach einen PHP header () -Aufruf in den WP 'init'-Hook ein:

add_action('init', 'add_header_xua');
function add_header_xua(){
    if(!is_admin()){
        header('X-UA-Compatible: IE=Edge,chrome=1');    
    }
}

Aber ist das der richtige Weg, das zu tun?

16
mikkelbreum

Die Init-Aktion ist der falsche Ort dafür. Ein besserer Ort wäre template_redirect, sodass Sie nur die Front-End-Ansicht der Site und nicht die Administrationsbereiche beeinflussen.

9
Otto

Hier ist der Code, den ich verwendet habe, basierend auf der ursprünglichen Frage und der Antwort von 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');

Sobald Sie diesen Code zu Ihrer functions.php-Datei hinzugefügt haben, können Sie überprüfen, ob er funktioniert, indem Sie einen Test unter http://web-sniffer.net/ ausführen, um sicherzustellen, dass sich die HTTP-Header tatsächlich geändert haben.

14

Ich weiß, dass es eine Weile her ist, aber wenn jemand anderes darüber stolpert, habe ich einen WordPress-Hook speziell zum Ändern von HTTP-Headern gefunden. Der Hook heißt wp_headers und wird in der Klasse wp aufgerufen.

Das erste übergebene Argument ist ein Array von Headern mit dem Headernamen als Schlüssel. Das zweite Argument ist ein Verweis auf das WP-Klassenobjekt.

11
Dominic P

send_headers ist in dieser Situation die bevorzugte Methode gegenüber wp_headers, wie im codex gezeigt.

is_admin() || add_action('send_headers', function(){ 
    header('X-UA-Compatible: IE=Edge,chrome=1'); 
}, 1);

Hier ist meine Erklärung für das Warum zu einer ähnlichen Frage.

4
Bryan Willis