Tuto Optimisation WordPress : désactiver Contact Form 7 sur la Home

Si vous avez ajouter le code de l’article précédent et que vous utilisez le plugin Contact Form sur votre blog, vous devez voir apparaître ces 2 lignes:

Vous allez me dire, « normal ! », pas tant que ça en fait, pourquoi ajouter un script js et une feuille css sur la Homepage de votre blog, alors qu’il n’y a même pas de formulaire sur cette page ? (enfin c’est le cas dans 99% des cas…).

Un des meilleurs moyen d’optimiser votre blog, est de supprimer tout ce qui est inutile, et le code précédent permet de récupérer le « handle » du script seul moyen de pouvoir agir sur celui-ci.

Dans le cas de Contact Form, le principe est assez simple, puisqu’il s’agit d’un shortcode ajouter à votre page, il suffit de tester si ce shortcode existe, si ce n’est pas le cas, on désactive le script JS et la feuille CSS.

Voici le code , à ajouter dans function.php (comme presque toujours)

{code}

/**
* Contact Form 7 – supprime les fichiers si non utiles
*/
if (!function_exists(‘mywpcf7_dequeue_scripts_styles’)) {
function mywpcf7_dequeue_scripts_styles() {
if ( WPCF7_LOAD_JS && WPCF7_LOAD_CSS ) {
global $post;
if ( !strpos($post->post_content, ‘[contact-form-7’) ) {
wp_dequeue_script(‘contact-form-7’);
wp_dequeue_style(‘contact-form-7’);
}
}
}
add_action( ‘wp_enqueue_scripts’, ‘mywpcf7_dequeue_scripts_styles’ );
}{/code}

Ce principe fonctionne pour tout autre plugin qui utilise un shortcode.

Loading Facebook Comments ...

2 comments on “Tuto Optimisation WordPress : désactiver Contact Form 7 sur la HomeAdd yours →

  1. Bonjour,

    Merci pour cet excellent tuto. Je l’ai utilisé sur mon site pour ‘Contact Form 7’. J’essaye de faire de même pour le plugin ‘Cool Video Gallery’ (http://wordpress.org/plugins/cool-video-gallery/).

    Les lignes ajoutés (par le hook décrit dans votre article http://wpastuces.com/94-liste-des-scripts-js-et-feuilles-css-dans-vos-pages-wordpress/) sont:
    /wp-content/plugins/cool-video-gallery/js/jquery.slideshow.js handle : jquery.slideshow
    /wp-content/plugins/cool-video-gallery/js/jquery.stripslashes.js handle : jquery.stripslashes
    /wp-content/plugins/cool-video-gallery/cvg-player/jwplayer.js handle : jwplayer
    /wp-content/plugins/cool-video-gallery/third_party_lib/fancybox/jquery.fancybox-1.3.4.pack.js handle : jquery.fancybox
    /wp-content/plugins/cool-video-gallery/third_party_lib/fancybox/jquery.fancybox-1.3.4.css handle : jquery.fancybox

    Mes questions sont:
    1- Comment remplacer « WPCF7_LOAD_JS && WPCF7_LOAD_CSS »? Où trouve-t’on ces valeurs?
    2- Les handles me semblent génériques. Je ne risque pas des pbs si je les supprime tous?

    Le code serait:
    /**
    * Cool Video Gallery – supprime les fichiers si non utiles
    */
    if (!function_exists(‘mycvg_dequeue_scripts_styles’)) {
    function mycvg_dequeue_scripts_styles() {
    if ( WPCF7_LOAD_JS && WPCF7_LOAD_CSS ) {
    global $post;
    if ( !strpos($post->post_content, ‘[cvg-gallery’) ) {
    wp_dequeue_script(‘jquery.slideshow’);
    wp_dequeue_script(‘jquery.stripslashes’);
    wp_dequeue_script(‘jwplayer’);
    wp_dequeue_style(‘cvg-styles’);
    }
    }
    }
    add_action( ‘wp_enqueue_scripts’, ‘mywpcf7_dequeue_scripts_styles’ );
    }

    Merci d’avance pour votre aide

  2. Bonjour,

    1. Vous pouvez supprimer le test, je vais faire un autre article qui expliquera pourquoi…

    2. En effet, tout ce qui est avec jQuery est susceptible d’être utiliser par d’autres plugins… à supprimer au cas par cas…

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *