J'ai besoin d'annuler l'enregistrement de ce style de mise en file d'attente du crochet wp_footer () et de l'ajouter au sommet du site avec le crochet wp_head (), c'est possible?
J'optimise mon thème pour le valider dans le W3C, et l'une des exigences du W3C est que tous les styles figurent dans la balise <head></head>
... J'utilise un plugin spécifique appelé Crayon Syntax Highlighter
, et ce plugin insère un style au bas de la page (utilisant probablement le crochet wp_footer()
).
Le nom/id du script est crayon
:
J'ai essayé toutes ces fonctions mais sans succès:
wp_deregister_style( 'crayon' );
wp_dequeue_style( 'crayon' );
remove_action( 'wp_enqueue_style' , 'crayon' , 10 );
wp_deregister_style( 'crayon-css' );
wp_dequeue_style( 'crayon-css' );
remove_action( 'wp_enqueue_style' , 'crayon-css' , 10 );
Si vous regardez le code source , vous pouvez voir que wp_enqueue_style( 'crayon' )
est appelé dans Crayon::enqueue_resources()
, lui-même appelé soit à partir de Crayon::the_content()
ou de Crayon::wp_head()
. Le code dans Crayon::wp_head
est:
if (!CrayonGlobalSettings::val(CrayonSettings::EFFICIENT_ENQUEUE) || CrayonGlobalSettings::val(CrayonSettings::TAG_EDITOR_FRONT)) {
CrayonLog::debug('head: force enqueue');
// Efficient enqueuing disabled, always load despite enqueuing or not in the_post
self::enqueue_resources();
}
Ce qui mettra le style en file d'attente seulement lorsque certains paramètres seront activés. Sinon, le style ne sera mis en file d'attente que depuis le filtre the_content
qui se déclenche après que wp_head
a déjà été généré.
Donc, vos deux options sont:
Hmmmm .. la question n'est pas très claire pour moi, si vous pouviez fournir un peu plus d'informations sur votre problème (comme les fichiers spécifiques et les scripts que vous devez modifier), ce serait génial. D'après ce que j'ai compris, je vais essayer de vous aider. Premièrement, évitez les plugins sauf si vous en avez vraiment besoin. Maintenant, vous essayez peut-être de déplacer du code et du code JavaScript bloquant le rendu hors de la balise, car lorsque vous commencez à charger une page via votre navigateur, les premiers scripts que vous téléchargez sont ceux entre balises, en les déplaçant vers votre pied de page ( footer.php ou /public_html/wp-content/themes/yourtheme/footer.php), la page Web commencera à restituer toutes les données devant être visualisées en commençant par le haut de la page et enfin les scripts du pied de page. fichier .php. Je parie que Crayon Syntax Highlighter
est la cause du problème, essayez simplement de mettre ce <!-- W3TC-include-js-head -->
avant la balise de fermeture </body>
.
Si vous voulez utiliser wp_enqueue_scripts
, regardez cet exemple
function themeslug_enqueue_style() {
wp_enqueue_style( 'core', 'style.css', false );
}
function themeslug_enqueue_script() {
wp_enqueue_script( 'my-js', 'filename.js', false );
}
add_action( 'wp_enqueue_scripts', 'themeslug_enqueue_style' );
add_action( 'wp_enqueue_scripts', 'themeslug_enqueue_script' );
J'espère que cela aide, bonne chance mec. :)