Désarticulons Wordpress 2.8
Petit, je souhaitais devenir chirurgien. Ce rêve m’a laissé quelques séquelles, j’adore opérer à cœur ouvert : prendre un programme, le découper en morceau, et comprendre ses forces et ses faiblesses en partant de l’intérieur. Aujourd’hui, j’ai décidé de m’attaquer à la nouvelle monture de Wordpress, dans le but d’optimiser le machin.
Première étape, l’installation. Je ne détaille pas le processus, vous le connaissez probablement sur le bout des doigts. Dix minutes top chrono, le temps de dézipper la bête, le tout est installé. Le scalpel à droite, la morphine à gauche, l’opération peut commencer.
Après un premier état des lieux rapide, je me dirige directement vers le centre du cerveau : les requêtes SQL. Une ligne de code ajoutée par-ci, une autre par là, elles défilent sur mon écran au fil de ma navigation. Pour information, j’ai juste trifouillé la méthode query() du fichier /wp-includes/wp-db.php pour ajouter un simple :
{{< highlight bash >}}echo $query;{{< /highlight >}}
Première constatation, ces requêtes sont nombreuses. Au moins une dizaine par page, en moyenne. Et encore, je n’ose pas vous parler de l’interface d’administration. De plus, nombre d’entre elles sont redondantes, plusieurs pourraient être fusionnées, d’autres supprimées. Je pense notamment à celles permettant de charger les options de configuration de votre blog : ces options changent tous les 36 du mois, les mettre en cache me semble inévitable, pourquoi ne le font-ils pas ? Idem pour les liens ou les catégories, placés dans la sidebar.
Pour m’aider dans l’analyse de ces requêtes, j’approfondis le bout de code donné plus haut (ne fuyez pas, je vous l’explique juste après, en bon français) :