¿Hay alguna forma de leer o listar los contenidos de wp_head ()?

2

Estoy trabajando en un compilador de CSS y JS y necesito encontrar una forma de enumerar los contenidos de wp_head()

Estoy intentando obtener una lista de todos los archivos CSS / JS y CSS en línea en cualquier página de donaciones.

Enganchar la acción wp_head no hace nada

Esperaba que algo como esto funcionara

function head_content($list){

    print_r($list);


}

add_action('wp_head', 'head_content');

cualquier ayuda es apreciada.

ACTUALIZACIÓN :

tengo algo funcionando

function head_content($list){

    print_r($list);

    return $list;

}

add_filter('print_styles_array', 'head_content');
add_filter('print_script_array', 'head_content');

esto lista todos los manejadores de archivos css / js

    
pregunta Benn 15.05.2016 - 19:31

3 respuestas

2

Quería buscar y reemplazar en el encabezado, pero Ni las respuestas de @majick o @Samuel Elh funcionaron directamente para mí. Entonces, combinando sus respuestas obtuve lo que eventualmente funciona:

function start_wp_head_buffer() {
    ob_start();
}
add_action('wp_head','start_wp_head_buffer',0);

function end_wp_head_buffer() {
    $in = ob_get_clean();

    // here do whatever you want with the header code
    echo $in; // output the result unless you want to remove it
}
add_action('wp_head','end_wp_head_buffer', PHP_INT_MAX); //PHP_INT_MAX will ensure this action is called after all other actions that can modify head

Se agregó a functions.php del tema de mi hijo.

    
respondido por el Putnik 11.10.2016 - 08:29
3

La solución simple es escuchar wp_head en una función personalizada, al igual que lo hace WordPress en wp-includes/general-template.php para Función wp_head() .

Quiero decir algo como:

function head_content() {
    ob_start();
    do_action('wp_head');
    return ob_get_clean();
}
// contents
var_dump( head_content() );

Más tarde, use regex u otra herramienta para filtrar los contenidos a los que se dirige.

Espero que ayude.

    
respondido por el Samuel Elh 16.05.2016 - 02:47
2

Podrías amortiguar la salida de wp_head agregándole algunas acciones de envoltura:

add_action('wp_head','start_wp_head_buffer',0);
function start_wp_head_buffer() {ob_start;}
add_action('wp_head','end_wp_head_buffer',99);
function end_wp_head_buffer() {global $wpheadcontents; $wpheadcontents = ob_get_flush();}

Luego, puedes llamar a global $wpheadcontents; a otra parte para acceder al contenido y procesarlo.

Pero, en este caso, puede ser más simple obtener la información que busca directamente de las variables globales $wp_styles y $wp_scripts .

add_action('wp_enqueue_scripts','print_global_arrays',999);
    global $wp_styles, $wp_scripts;
    echo "Styles Array:"; print_r($wp_styles);
    echo "Scripts Array:"; print_r($wp_scripts);
}
    
respondido por el majick 16.05.2016 - 06:06

Lea otras preguntas en las etiquetas