Je travaille sur un compilateur CSS et JS et j'ai besoin de trouver un moyen de lister le contenu de wp_head()
J'essaie d'obtenir une liste de tous les fichiers CSS/JS et CSS en ligne sur une page donnée.
Accrocher l'action wp_head ne fait rien
J'espérais que quelque chose comme ça marcherait
function head_content($list){
print_r($list);
}
add_action('wp_head', 'head_content');
toute aide est appréciée.
METTRE À JOUR:
a quelque chose qui fonctionne
function head_content($list){
print_r($list);
return $list;
}
add_filter('print_styles_array', 'head_content');
add_filter('print_script_array', 'head_content');
ceci répertorie tous les fichiers css/js
Je voulais chercher et remplacer dans l'en-tête, mais ni les réponses @majick ni @Samuel Elh ne fonctionnaient directement pour moi. Donc, en combinant leurs réponses, j'ai eu ce qui a finalement fonctionné:
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
Il a été ajouté au functions.php
de mon thème enfant.
La solution simple consiste à écouter wp_head dans une fonction personnalisée, comme le fait WordPress dans wp-includes/general-template.php
pour la fonction wp_head()
.
Je veux dire quelque chose comme:
function head_content() {
ob_start();
do_action('wp_head');
return ob_get_clean();
}
// contents
var_dump( head_content() );
Plus tard, utilisez regex ou un autre outil pour filtrer le contenu que vous ciblez.
J'espère que cela pourra aider.
Vous pouvez mettre en tampon la sortie wp_head
en y ajoutant des actions d'encapsuleur:
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();}
Vous pouvez ensuite appeler global $wpheadcontents;
ailleurs pour accéder au contenu et le traiter.
Mais, dans ce cas, il peut être plus simple de simplement obtenir les informations que vous recherchez directement à partir des variables globales $wp_styles
et $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);
}