Contact Form 7 est un plugin qui permet de réaliser des formulaires personnalisable sur WordPress.

La problématique

Comme tout plugin ses fichiers JS et CSS sont insérés sur toutes les pages de votre site par défaut et le fait de charger les fichiers sur la totalité de vos pages web demande au visiteur des ressources inutiles.
L’impact est faible sur un visiteur qui possède une bonne connexion internet, mais à l’ère du mobile et des connexions faible, la moindre économie est bonne à prendre.

J’ai trouvé un code qui proposent de les charger uniquement en cas de besoin, ce qui permettrait de continuer à bénéficier des fonctionnalités et styles de base du plugin.

/**
 * Contact Form 7 - Load files only if necessary
 */
if (!function_exists('juiz_wpcf7_dequeue_scripts_styles')) {
	function juiz_wpcf7_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', 'juiz_wpcf7_dequeue_scripts_styles' );
}

Quelques explications

Les constantes WPCF7_LOAD_JS et WPCF7_LOAD_CSS sont définies par le plugin lorsqu’il est activé. Elles retournent true lorsqu’elles existent, false si un réglage particulier est fait, et ne sont pas définies si le plugin n’est pas activé.
Du coup ce code propose d’intervenir uniquement si le plugin est activé, et si les fichiers demandent à être chargés.

Le reste du code vérifie si on trouve le shortcode de Contact Form 7 dans le contenu, si ce n’est pas le cas, alors on retire les fichiers du chargement grâce aux fonctions wp_dequeue_script() et wp_dequeue_style().

 

Source

Praesent Sed risus consequat. quis, ut