web-dev-qa-db-fra.com

Le script de file d'attente dans le modèle ne fonctionne pas

Je souhaite supprimer un script ('enterprise-responsive-menu'), mais la fonction que j'ai dans mon modèle ne le fait pas. Quelque chose ne va pas?

Voici la file d'attente dans functions.php-

//* Enqueue Scripts 
add_action( 'wp_enqueue_scripts', 'enterprise_load_scripts' );
function enterprise_load_scripts() {

wp_enqueue_script( 'enterprise-responsive-menu', get_bloginfo( 'stylesheet_directory' ) . '/js/responsive-menu.js', array( 'jquery' ), '1.0.0' );

wp_enqueue_style( 'dashicons' );

wp_enqueue_style( 'google-fonts', '//fonts.googleapis.com/css?family=Lato:300,700,300italic|Titillium+Web:600', array(), CHILD_THEME_VERSION ); 
}'

Voici le code de la file d'attente dans mon modèle -

//Remove Mobile Header
function project_dequeue_unnecessary_scripts() {
wp_dequeue_script( 'enterprise-responsive-menu' );
wp_deregister_script( 'enterprise-responsive-menu' );
}
add_action( 'wp_print_scripts', 'project_dequeue_unnecessary_scripts' );
2
Carter Steinhoff

Déplacez votre fonction project_dequeue_unnecessary_scripts() dans votre fichier functions.php et ajoutez une instruction conditionnelle pour déterminer si le modèle approprié est en cours de chargement. Par exemple.:

// Remove Mobile Header
function project_dequeue_unnecessary_scripts() {
    if ( is_page_template( 'name-of-template.php' ) ) {
        wp_dequeue_script( 'enterprise-responsive-menu' );
        wp_deregister_script( 'enterprise-responsive-menu' );
    }
}
add_action( 'wp_print_scripts', 'project_dequeue_unnecessary_scripts' );

Je suspecte que votre fonction ne fonctionne pas car elle a été placée quelque part après l'appel à get_header() dans le fichier de modèle, ce qui signifie qu'il serait trop tard pour retirer le script. Déclarer des fonctions dans des fichiers modèles n’est pas une bonne pratique, utilisez donc votre fichier functions.php ou un autre include.

2
Dave Romsey
add_action( 'wp_enqueue_scripts', 'enterprise_load_scripts' );
function enterprise_load_scripts(){
    if ( !is_page_template( 'name-of-template.php' ) ) {
        wp_enqueue_script( 'enterprise-responsive-menu', get_bloginfo( 'stylesheet_directory' ) . '/js/responsive-menu.js', array( 'jquery' ), '1.0.0' );
    }
    wp_enqueue_style( 'dashicons' );
    wp_enqueue_style( 'google-fonts', '//fonts.googleapis.com/css?family=Lato:300,700,300italic|Titillium+Web:600', array(), CHILD_THEME_VERSION ); 
}

Au lieu de retirer de la file d'attente, que se passe-t-il si vous mettez ce script spécifique dans une condition telle qu'il ne soit chargé que sur les pages contenant un modèle, à l'exception de celles pour lesquelles vous ne voulez pas.

0
Rituparna sonowal