Contact Form 7 : Charger le js et le css uniquement quand un formulaire est utilisé

Contact Form 7 : Charger le js et le css uniquement quand un formulaire est utilisé

Par défaut, le plugin Contact Form 7 de WordPress charge css et js sur toutes les pages de votre site quand vous l’activez. Ce n’est pas l’idéal pour la performance du site, parce que nous chargeons ainsi des fichiers qui ne servent à rien sur les pages qui ne contiennent aucun formulaire créé via le plugin.

Néanmoins, les auteurs du plugin nous donnent une possibilité – certes pas idéale – mais qui permet d’optimiser le chargement de vos js et css sur votre site WordPress.

Tout d’abord, vous pouvez désactiver le chargement automatique du js et css de Contact Form 7 sur toutes les pages en ajoutant ces deux lignes dans votre wp-config.

define( 'WPCF7_LOAD_JS', false );
define( 'WPCF7_LOAD_CSS', false );

Maintenant, il va falloir injecter le javascript et le css (si besoin. Personnellement, je me passe du css du plugin) uniquement sur les pages contenant un formulaire généré par Contact Form 7. C’est un peu fastidieux, il faut penser à modifier la fonction ci-dessous dès qu’on rajoute ou enlève un formulaire de son WordPress, mais ça permet de ne pas charger des scripts inutiles et d’améliorer la performance de son site. Dans functions.php.

if( class_exists( 'WPCF7' ) ) {
  function custom_enqueue_wpcf7() {
    // Ici, je mets les slugs des pages contenant un formulaire
    $pages = array( 'page-contact' );
    // Ici, je mets les slugs des posts contenant un formulaire
    $singles = array( 'sondage-wordpress' );
    if( is_page( $pages ) || is_single( $singles ) ) {
      if( function_exists( 'wpcf7_enqueue_scripts' ) ) {
        wpcf7_enqueue_scripts();
      } 
      if( function_exists( 'wpcf7_enqueue_styles' ) ) {
        wpcf7_enqueue_styles();
      }
    }
  }
  add_action( 'wp_enqueue_scripts', 'custom_enqueue_wpcf7' );
}

Besoin d'un développeur Wordpress ?

Développeur WordPress et front-end depuis plus de 10 ans, je vous accompagne dans le développement de votre site internet, performant et sur-mesure. Faites appel à mes services de freelance WordPress.

Stay in Touch ?