Les extensions disponibles dans la bibliothèque officielle de WordPress sont pour la plupart très bien conçus et disposent de fonctionnalités avancées. Souvent, ils utilisent des fichiers externes de type JavaScript, mais également des feuilles de styles. Ces éléments sont chargés, pour la plupart, automatiquement sur la totalité des pages de votre blog WordPress. Notons que certaines extensions chargent uniquement les contenus dynamiques proposé par leurs services seulement dans les pages articles (single.php/singular()) de votre blog. Cela optimise considérablement le chargement de votre page d’accueil puisque les fichiers inutiles ne seront pas chargés.
[popeye exclude= »9510″] Il n’existe malheureusement (pour le moment) aucune extension permettant de renseigner ou de désactiver les fonctions d’ajout automatique des extensions. L’extension créée, si cela est possible, pourrai facilement lister les autres extensions installées, en recherchant alors dans les fichiers, de types « .php » des dossiers les possibles fonctions « wp_enqueue_(script/style)« . En effet, elles utilisent cette fonctionnalité pour ajouter du contenu dynamique.
En attendant cette petite extension, nous vous proposons de les désactiver manuellement, via le fichier « functions.php » de votre thème WordPress. Nous vous rappelons que l’utilité de cette fonction permet tout simplement de garder le contrôle des fichiers chargés par les extensions de votre blog. Nous utilisons également les « marqueurs conditionnels » pour optimisé ce chargement. Tout d’abord, repérez les fonctions « wp_enqueue_script » ou « wp_enqueue_style » qui se trouvent dans les fichiers « .php » de vos extensions.
Les scripts
Nous avons alors une fonction de ce type, contenant l’attribut de l’extension à supprimer. Dans cet exemple, nous avons l’extension « Contact Form 7 » avec l’attribut « contact-form-7 » à supprimer (attribut présent dans le « wp_enqueue_script » du fichier principal de l’extension)
[php]
wp_enqueue_script( ‘contact-form-7’);
[/php]
Pour supprimer, correctement les scripts des extensions utilisés, il vous suffit de coller le code suivant dans le fichier « functions.php » de votre thème WordPress, suivi de l’attribut présent dans la balise « wp_enqueue »
[php]
add_action( ‘wp_print_scripts’, ‘my_deregister_javascript’, 100 );
function my_deregister_javascript() {
if ( !is_single() ) {
wp_deregister_script( ‘contact-form-7’ );
}
}
[/php]
Pour supprimer plusieurs scripts en une seule fonction, il vous suffit de dupliquer la ligne « wp_deregister_script( ‘ ‘ ); ». Comme ceci.
[php]
add_action( ‘wp_print_scripts’, ‘my_deregister_javascript’, 100 );
function my_deregister_javascript() {
if ( !is_single() ) {
wp_deregister_script( ‘contact-form-7’ );
wp_deregister_script( ‘popeye’ );
}
}
[/php]
Les styles
Pour finir et pour supprimer correctement les styles des extensions utilisés, il vous suffit de coller le code suivant dans le fichier « functions.php » de votre thème WordPress avec l’attribut présent dans la fonction « wp_enqueue »
[php]
add_action( ‘wp_print_styles’, ‘my_deregister_styles’, 100 );
function my_deregister_styles() {
if ( !is_single() ) {
wp_deregister_style( ‘popeye-base’);
}
}
[/php]
Pour en supprimer plusieurs à la fois, il vous suffit de dupliquer la ligne « wp_deregister_script( » ); ». Comme ceci.
[php]
add_action( ‘wp_print_styles’, ‘my_deregister_styles’, 100 );
function my_deregister_styles() {
if ( !is_single() ) {
wp_deregister_style( ‘popeye-base’);
wp_deregister_style( ‘popeye-style’);
}
}
[/php]
Notes
Comme vous le voyez, nous avons utilisé un marqueur conditionnel « is_single« . Celui-ci permet de filtrer la suppression des styles et scripts. En effet, avec ce marqueur, il est plutôt simple d’attribuer le chargement de fichiers sur les pages de votre choix. Les éléments sont alors chargés sur les pages « articles » de votre blog. Vous pouvez voir bien évidemment utiliser d’autres marqueurs. Nous en avons fait la liste dans cet article. Si vous le souhaitez, vous pouvez également attribuer plusieurs marqueurs aux fonctions précédemment présentés.
[php]
add_action( ‘wp_print_styles’, ‘my_deregister_styles’, 100 );
function my_deregister_styles() {
if ( !(is_home() || is_single() ) ) {
wp_deregister_style( ‘attribut’);
wp_deregister_style( ‘autre-attribut’);
}
}
[/php]
Publié à l'origine le : 20 août 2010 @ 11 h 03 min