web-dev-qa-db-fra.com

Impossible d'annuler l'enregistrement d'un script à l'aide de wp_deregister_script

J'essaie de faire figurer le script Disqus dans la première page, mais malheureusement, je ne parviens pas à faire cela.

Voici une petite histoire des étapes que j'ai effectuées.

  1. Trouvez le nom du script dans les fichiers de code source du plugin

    wp_register_script ('dsq_count_script', plugins_url ('/media/js/count.js',FICHIER)); wp_localize_script ('dsq_count_script', 'countVars', $ count_vars); wp_enqueue_script ('dsq_count_script', plugins_url ('/media/js/count.js',FICHIER));

  2. Ajouter une action pour le hook wp_print_scripts

    add_action('wp_print_scripts', array($this, 'deregister_unused_scripts'), 100);
    
  3. Implémenter la fonction deregister_unused_scripts

    public function deregister_unused_scripts()
    {
        wp_dequeue_script('dsq_count_script');
        wp_deregister_script('dsq_count_script');
    }
    

Ça ne marche toujours pas.

J'ai aussi essayé un autre crochet

    add_action('wp_footer', array($this, 'deregister_unused_scripts'), 100);

Mais cela n'a pas aidé aussi, j'ai toujours une sortie dans le pied de page.

<script type='text/javascript'>
/* <![CDATA[ */
var countVars = {"disqusShortname":"myname"};
/* ]]> */
</script>
<script type='text/javascript' src='http://myurl.net/wp-content/plugins/disqus-comment-system/media/js/count.js?ver=4.7.3'></script>

Qu'est-ce qui ne va pas?

MODIFIER

Voici l'action utilisée pour enregistrer le script du plugin.

add_action('wp_footer', 'dsq_output_footer_comment_js');
5
CROSP

Lorsque vous tentez de retirer un script de file d'attente, vous devez vous connecter après sa mise en file d'attente, mais avant son impression. Dans ce cas, le plug-in Disqus utilise le hook wp_footer avec une priorité de 10 pour mettre les scripts en file d'attente. Les scripts de pied de page sont imprimés avec la priorité wp_footer avec une priorité de 20. Nous devrions donc être en mesure d’accroche dans wp_footer avec une priorité de 11 et de retirer le script de la file d'attente.

add_action( 'wp_footer', 'wpse_262301_wp_footer', 11 );
function wpse_262301_wp_footer() { 
  wp_dequeue_script( 'dsq_count_script' ); 
}
7
Nathan Johnson