Accélérer le chargement des pages en divisant le fichier functions.php

Aujourd’hui il est plus qu’indispensable d’avoir un site ou un blog qui se charge rapidement. Il est donc opportun de cumuler différentes petites améliorations (se chiffrant en millisecondes) qui toutes mises ensemble génèrent de grosses accélérations du chargement de vos pages (se chiffrant en secondes).

Voici donc une astuce découverte sur Screenfeed et facile à mettre en place. Une astuce consistant à découper le fichier functions.php bien souvent très volumineux en 3 parties (front-end, ajax, wp-admin) afin de ne charger sur votre blog que les fonctions nécessaires au fonctionnement du blog sans charger celles de l’admin et vice vers ça.

Optimiser le fichier functions.php pour plus de rapidité

L’important n’est pas de gagner en « poids » du fichier, mais bien d’éviter à votre WordPress de devoir charger (lire) inutilement des fonctions inutiles pour le lecteur quand il n’en a pas besoin.

Voyons donc voir comment découper ce fichier en minimum 3 parties distinctes :

  1. Front-end (votre site/blog)
  2. Backoffice (votre wp-admin)
  3. Ajax

A vous de voir si vous pouvez le découper avec une 4ème voir une 5ème partie en isolant par exemple le code de vos widgets, ou de vos shortcodes, ceux-ci n’auront pas d’impact positif ou négatif sur le chargement de vos pages puisque chargés comme le fichier frontend, en revanche ils faciliteront la mise à jour de votre thème ou de votre code. (Les widgets et shortcodes doivent être inclus autant sur le front-end que sur le backoffice !)

Voici donc ce à quoi devrait ressembler votre fichier functions.php après modifications :

//pour un thème non enfant (maintheme)
$wpln_theme_path = get_template_directory();
// pour un thème enfant (childtheme)
$wpln_css_path = get_stylesheet_directory();

if ( defined('DOING_AJAX') && DOING_AJAX && is_admin() ) {

	include( $templatepath.'/functions/ajax.php' );

} elseif ( is_admin() ) {

	include( $templatepath.'/functions/admin.php' );

} elseif ( !defined( 'XMLRPC_REQUEST' ) && !defined( 'DOING_CRON' ) ) {

	include( $templatepath.'/functions/frontend.php' );

}

Vous l’aurez compris il vous faut donc créer un répertoire /functions/ dans le répertoire de votre thème et y créer les fichiers :

  • ajax.php
  • admin.php
  • frontend.php
  • + éventuellement vos autres fichiers.

Pour des raisons de sécurité, commencez chacun de ces fichiers avec le code suivant afin d’éviter qu’un utilisateur mal intentionné ne tente d’accéder à ces fichiers directement depuis leur navigateur, ce qui engendrerait un message d’erreur avec des informations qui pourraient s’avérer utile pour lui.

<?php
if( !defined( 'ABSPATH' ) )
	die( 'Cheatin\' uh?' );

// Votre code ici

Difficile d’aller plus loin dans ce tutoriel étant donné que votre fichier functions.php n’est probablement pas semblable à un autre, étant donné que chaque site utilise des fonctions différentes. A vous d’identifier donc les différentes fonctions qui devront aller dans le fichier admin ou dans le fichier frontend et ajax.

Notez cependant que la page wp-login.php ne fait pas partie de l’administration, toutes les fonctions liées à celle-ci devront donc être dans le fichier frontend.php

Laisser un commentaire

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