¿Función / filtro WP para modificar los encabezados http?

12

¿Hay una función, acción o filtro WP dedicado para usar al agregar / modificar los encabezados HTTP?

Por ahora, solo engancho una llamada de encabezado de PHP () al 'WP' init 'hook de esta manera:

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

¿Pero es esta la forma correcta de hacerlo?

    
pregunta mikkelbreum 16.06.2011 - 17:40

4 respuestas

8

La acción de inicio es el lugar equivocado para hacerlo. Un lugar mejor sería en template_redirect, de modo que solo afecte la vista frontal del sitio y no las áreas de administración.

    
respondido por el Otto 16.06.2011 - 17:54
13

Aquí está el código que he usado, basado en la pregunta original y en la respuesta 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');

Una vez que haya agregado ese código a su archivo functions.php, puede verificar que funcione ejecutando una prueba en enlace para Asegúrate de que los encabezados HTTP hayan cambiado.

    
respondido por el ban-geoengineering 13.02.2014 - 15:56
10

Sé que ha pasado un tiempo, pero si alguien más se tropieza con esto, encontré un gancho de WordPress específicamente para modificar los encabezados HTTP. El gancho es wp_headers y se llama en clase wp .

El primer argumento pasado es una matriz de encabezados con el nombre del encabezado como clave. El segundo argumento es una referencia al objeto de clase wp.

    
respondido por el Dominic P 27.03.2013 - 23:10
3

send_headers es el método preferido sobre wp_headers para esta situación como se demuestra en codex .

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

Aquí está mi explicación de por qué en una pregunta similar.

    
respondido por el Bryan Willis 08.01.2016 - 08:51

Lea otras preguntas en las etiquetas