web-dev-qa-db-fra.com

Désenregistrer un script dans Wordpress semble impossible

J'ai tout essayé. J'ai même supprimé tout le contenu de functions.php et créé un tout nouveau fichier avec juste ceci:

function wpdocs_dequeue_script() {
 if (is_singular()) {
    wp_dequeue_script( 'gdrts-rating' );
  }
}
add_action( 'wp_print_scripts', 'wpdocs_dequeue_script', 100 );

L'idée est de supprimer certains fichiers Javascript de mon type de message personnalisé. Je pensais que je faisais quelque chose de mal alors j'ai d'abord essayé avec is_page () et même is_home (), mais même cela ne fonctionne pas pour moi. Il semble que le code ne soit pas déclenché.

Ceci est mon plugin:

  wp_enqueue_script('gdrts-events', $this->file('js', 'events'), array(), gdrts_settings()->file_version(), false);
    wp_enqueue_script('gdrts-rating', $this->file('js', 'rating'), $depend_js, gdrts_settings()->file_version(), true);

Donc, j'ai aussi essayé de le faire comme ceci:

function wpdocs_dequeue_script() {
    wp_dequeue_script( 'gdrts-rating' );

}
add_action( 'wp_enqueue_scripts', 'wpdocs_dequeue_script', 100 );

Ca ne fonctionne pas!

1
Siyah

Essayez deregister_script en plus de dequeue_script

function wpdocs_dequeue_script() {
    wp_dequeue_script( 'gdrts-rating' );
    wp_deregister_script( 'gdrts-rating' );

}
add_action( 'wp_enqueue_scripts', 'wpdocs_dequeue_script', 100 );
1
admcfajn

Veuillez noter que ce qui suit se fait via un plugin personnalisé et non dans le fichier de fonctions car la plupart des thèmes mis à jour écraseront le fichier de fonctions.

Le ci-dessous est testé et fonctionne pour mettre un script en file d'attente, j'ai ajouté du code que vous pouvez utiliser pour tester si le fichier est chargé avant de le supprimer et j'utiliserais également votre nom de publication personnalisé si vous souhaitez que cela soit déchargé sur cette publication tapez is_singular ().

<?php
/*
Plugin Name: Remove_script_Stack_353322
Plugin URI: www.mywebsite.com
Description: Remove a script when needed
Version: 1.0
Author: Me
Author URI: www.mywebsite.com
*/

    /**
     * Enqueue script.
     */
    function my_scripts_method() {
        //Change your plugin url/name
        wp_enqueue_script( 'gdrts-rating', plugins_url( 'test.js' , __FILE__ ));
    }
    add_action( 'wp_enqueue_scripts', 'my_scripts_method' );



    function wpdocs_dequeue_script() 
    {

        // Lets check if gdrts-rating is loaded
        $handle = 'gdrts-rating';
        $list = 'enqueued';
        if (wp_script_is( $handle, $list )) 
        {

            //echo 'Loaded --------------------------------------------------------------------->';
            // Custom post type so use the name in ->  is_singular('custom_post_name')  you can have more post types such as is_singular('custom_post_name', 'custom_post_2')

            if (is_singular()) 
            {
             // Unload the plugin
             wp_dequeue_script( 'gdrts-rating' );
            }

        } 
        else 
        {
           // Not loaded do nothing
           //echo 'Not loaded --------------------------------------------------------------------->';
        }


    }
    add_action( 'wp_print_scripts', 'wpdocs_dequeue_script', 10 );
1
Sam