23Août/112

WordPress: désactiver styles et scripts des extensions

Publié par Sébastien dans Développement, Wordpress

En souhaitant installer l'extension Nivo Slider sur WordPress, j'ai du faire face à un problème de conflit entre extensions.

En effet, ce plugin installé en parallèle de Custom Contact Form ne fonctionne pas correctement. Il s'est avéré que ce dernier plugin empêche Nivo Slider de fonctionner correctement à cause, il semblerait, d'un conflit d'utilisation de jQuery par les extensions.

Il est bien évidemment impensable d'aller modifier le code source des extensions, qui sera de toutes façons remplacé à chaque mise à jour. Ce qui m'amène à vous parler de comment peut-on désactiver une extension sur certaines pages sans la désactiver complètement depuis le panel d'administration?

Trouver d'où vient le problème

Avant de désactiver un plugin, il faut savoir que chaque extension contient un certain nombre de fichiers. Le fichier principal possède une liste d'ordres utilisés par WordPress pour inclure dans vos pages ce qu'il faut pour l'utilisation de l'extension.

Vous trouverez parmi ces ordres des lignes comme:

wp_enqueue_script('ccf', plugins_url() . '/ccf/js/ccf.js', '1.2');
// ou encore
wp_enqueue_style('ccf');

C'est avec ces ordres que WordPress inclut automatiquement scripts et feuilles de style dans votre page. Ces ordres peuvent facilement être ignorés à l'aide de quelques lignes de code dans le fichier functions.php de votre thème:

// Désactivation des scripts
add_action( 'wp_print_scripts', 'disable_scripts_function', 100 );
function disable_scripts_function() {
	// Pour désactiver par exemple le chargement d'un script sur la home page
	if ( is_home() ) {
		// my-extension-script-1 correspond au code utilisé dans la fonction wp_enqueue_script
		wp_deregister_script( 'my-extension-script-1' );
		wp_deregister_script( 'my-extension-script-2' );
		wp_deregister_script( '...' );
	}
}
// Désactivation des feuilles de style
add_action( 'wp_print_styles', 'disable_styles_function', 100 );
function disable_styles_function() {
	// Pour désactiver par exemple le chargement d'un style sur la home page
	if ( is_home() ) {
		// my-extension-style-1 correspond au code utilisé dans la fonction wp_enqueue_style
		wp_deregister_style( 'my-extension-style-1' );
		wp_deregister_style( 'my-extension-style-2' );
		wp_deregister_style( '...' );
	}
}
Commentaires (2) Trackbacks (0)
  1. Bonjour,
    merci pr ces infos j’ai le meme pb : conflit entre 2 plugins dont j’ai absolument besoin.
    Par contre j’aimerais savoir à quel endroit du code on indique à quelles pages il ne faut pas que le script soit activé?
    Moi j’aimerais désactivé un script lors de l’affichage des commentaires!
    Merci pr votre aide!

    • Dans le code mentionné au dessus, c’est le « is_home() » qui permet de gérer s’il s’agit de la page d’accueil ou non.

      C’est donc dans cette fonction IF qu’il faut faire le test de la page dans laquelle on souhaite désactiver un script ou une feuille de style.


Laisser un commentaire

Notifiez-moi des commentaires à venir via email. Vous pouvez aussi vous abonner sans commenter.

Aucun trackbacks pour l'instant

escort beylikduzu escort istanbul escort bayan escort escort istanbul