web-dev-qa-db-fra.com

Ne laissez le plugin ajouter des actions à wp_head & wp_footer que sur des publications uniques

J'utilise un plugin ( Commentaires Evolved ) sur un site récemment construit.

Le problème que je rencontre est que ce plugin met globalement en file d'attente et ajoute des actions au début et à la fin de toutes les pages. Je voudrais supprimer les actions sauf pour les posts simples.

J'ai essayé ceci dans mon fichier functions.php:

    // strip out the plugin junk slowing down pages it's not used on
    function strip_the_junk() {
        if (!is_single() {
            remove_action('wp_head', 'gplus_comments_enqueue_styles');
            remove_action('wp_footer', 'gplus_comments_enqueue_scripts');
        }
    )};
    add_action('wp_enqueue_scripts', 'strip_the_junk', 11);

Cela bloque mon site. Pour les commentaires évolués, voici ce qui est pompé par hook.php:

    function gplus_comments_enqueue_styles()
    {
      wp_enqueue_style('gplus_comments_tabs_css');
    }
    add_action('wp_head', 'gplus_comments_enqueue_styles', 4269);

    function gplus_comments_enqueue_scripts()
    {
      print "\n<script>jQuery('#comment-tabs').tabs();</script>\n";
    /*
    <script type="text/javascript">
      (function() {
       var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
       po.src = 'https://apis.google.com/js/client:plusone.js';
       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
      })();
    </script>
    */
    }
    add_action('wp_footer', 'gplus_comments_enqueue_scripts', 4269);

Avez-vous des idées sur l'endroit où je me trompe?

Merci!

1
Tiger Danky

Vous devez supprimer les actions avant leur appel. Pour vous assurer que c'est le cas, appelez votre fonction à init, comme suit:

add_action('init', 'strip_the_junk');

En général, ce n’est pas une bonne idée d’utiliser le hook wp_enqueue_scripts pour autre chose que les fonctions wp_enqueue_script ou wp_enqueue_style.

1
JPollock