Alléger Contact Form 7

Contact Fom 7 est un plugin gratuit pour créer des formulaires de contact. C’est un des plus utilisés avec plus d’un million d’installations actives.

Il a cependant un défaut pour moi : Il ajoute son CSS et son JS sur toutes les pages du site. C’est inutile et ça fait 2 (à vérifier) fichiers supplémentaires à charger pour peu qu’on ne concatène pas les fichiers.

A l’époque j’utilisais l’astuce de Creative Juiz et j’ai décidé de me faire ma propre fonction (très similaire je vous l’accorde !). J’ai ensuite créé un mu-plugin pour externaliser ce petit détail de mon thème.

<?php
/**
 * Plugin Name: DevWP Filter Contact Form 7
 * Description: Dequeue JS and CSS when contact form 7 is not used
 * Author: Etienne Mommalier
 * Author URI: https://etienne-mommalier.fr
 * Version: 1.0
 */

defined( 'ABSPATH' ) or die();

// Only if contact form 7 is active
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
if ( is_plugin_active( 'contact-form-7/wp-contact-form-7.php' ) ) {
   /**
    * @see https://contactform7.com/loading-javascript-and-stylesheet-only-when-it-is-necessary/
    */

   add_action( 'wp_enqueue_scripts', 'devwp_enqueue_contactform7' );
   function devwp_enqueue_contactform7() {
      add_filter( 'wpcf7_load_js', '__return_false' );
      add_filter( 'wpcf7_load_css', '__return_false' );

      global $post;
      // @author: https://www.creativejuiz.fr/blog/tutoriels/astuce-wordpress-charger-fichiers-js-css-contact-form-7
      if ( strpos( $post->post_content, '[contact-form-7' ) !== false ) {
         if ( function_exists( 'wpcf7_enqueue_scripts' ) ) {
            wpcf7_enqueue_scripts();
         }
         if ( function_exists( 'wpcf7_enqueue_styles' ) ) {
            wpcf7_enqueue_styles();
         }
      }
   }
}

Pour activer ce mu-plugin, il suffit d’uploader sur votre FTP le fichier dans le dossier « mu-plugins » par défaut dans « wp-content ».


Publié

dans

par