logo rodolphe bertozzo

Quel est le fonctionnement technique d’un site WordPress ?

fonctionnement technique d'un site Wordpress

Un site WordPress fonctionne avec des fichiers PHP et une base de données MySQL. Les deux sont indissociables pour que le site soit en ligne et opérationnel. Je vais vous expliquer le fonctionnement technique d’un site WordPress, en détaillant les fichiers importants, ainsi que la structure de la base de données, et la façon dont fichiers et base de données se coordonnent. De sorte à pouvoir comprendre ce qu’il y a sous le capot d’un site WordPress. Je vais souvent utiliser les termes de répertoires et de fichiers. Un répertoire est un dossier contenant des fichiers et d’autres sous répertoires.

Les fichiers

Les fichiers d’un site WordPress servent à définir sa structure, ses paramètres, ainsi qu’à gérer les différentes fonctionnalités. Les fichiers interagissent avec la base de données MySQL grâce à un système de requêtes.

On peut accéder aux fichiers de son site de deux façons : par un client FTP (File Transfert Protocole), exemple : Filezilla. Ou par l’outil « Gestionnaire de fichiers » de son hébergement.

Fichiers d’un site WordPress avec FileZilla

3 grands répertoires

Il y a trois grands dossiers répertoires indispensables qui contiennent à eux seuls une multitude de répertoires et fichiers qui permettent au site de pouvoir fonctionner et d’être en place.

wp-admin

Le répertoire wp-admin de WordPress contient les fichiers qui gèrent l’administration du site, de façon plus précise, l’interface qui permet de toucher aux articles, pages, commentaires, médias, options de configuration, utilisateurs, thèmes et plugins. Il s’agit de l’endroit où les administrateurs du site peuvent gérer le contenu et les paramètres de ce dernier.

Ce répertoire contient des fichiers PHP, parmi lesquels :

  • options-general.php gère les paramètres généraux de WordPress.
  • plugin-install.php gère l’installation des plugins.
  • update-core.php gère la mise à jour de WordPress.
  • upgrade.php gère les mises à niveau des anciennes versions de WordPress.
  • wp-admin.php gère les redirections vers les pages d’administration

Ce répertoire contient les sous répertoires suivants :

  • css contient les feuilles de style pour l’interface d’administration.
  • images contient les images utilisées dans l’interface d’administration.
  • includes contient les fichiers PHP qui incluent les fonctionnalités de base de l’interface d’administration.
  • js contient les fichiers JavaScript pour l’interface d’administration.
  • menu contient les fichiers qui gèrent les menus de l’interface d’administration.
  • network contient les fichiers utilisés pour la gestion des réseaux multisites de WordPress.
  • languages contient les fichiers de traduction pour les plugins et les thèmes, pour traduire les textes du site dans d’autres langues.
  • user : contient les fichiers permettant de gérer les informations relatives aux utilisateurs.

wp-includes

Le répertoire wp-includes de WordPress est l’élément central de WordPress et la plupart de son fonctionnement en dépend. Il contient les fichiers qui gèrent les fonctionnalités de base de WordPress.

C’est en quelque sorte une bibliothèque de ressources qui fournit les fonctionnalités communes nécessaires à l’API REST de WordPress. Les autres répertoires sont dépendants de celui ci pour accomplir leur mission et iront solliciter ce dernier lorsqu’ils devront agir sur l’interface publique ou l’administration du site. Il contient donc une grande partie du code source de WP.

Voici une partie des sous-répertoires qu’il contient :

  • admin contient les fichiers qui gèrent l’interface d’administration de WordPress.
  • capabilities contient les fichiers qui gèrent les rôles et les autorisations des utilisateurs.
  • comment contient les fichiers qui gèrent les commentaires.
  • formatting contient les fichiers qui gèrent la mise en forme du contenu.
  • http contient les fichiers qui gèrent les requêtes HTTP.
  • load contient les fichiers qui gèrent le chargement des fichiers.
  • post contient les fichiers qui gèrent les publications.
  • query contient les fichiers qui gèrent les requêtes de la base de données.
  • revision contient les fichiers qui gèrent les révisions des publications.
  • script contient les fichiers qui gèrent les scripts JavaScript.
  • taxonomy contient les fichiers qui gèrent les catégories et les étiquettes.
  • theme contient les fichiers qui gèrent les thèmes.
  • user contient les fichiers qui gèrent les utilisateurs.
  • widgets contient les fichiers qui gèrent les widgets.

wp-content

Le répertoire wp-content contient les fichiers propres au site, tels que les thèmes, les plugins, les fichiers multimédias et les fichiers de traduction. Ce répertoire est le plus important pour l’utilisateur. Ce sont ces fichiers qui vous permettront d’ajouter des fonctionnalités à votre site ou de changer son apparence. Il contient les sous-répertoires suivants:

  • plugins contient les fichiers des plugins du site.
  • themes contient les fichiers des thèmes du site.
  • uploads contient les fichiers multimédias du site (images, documents PDF…). A noter que les fichiers sont organisés dans des répertoires par année et par mois.

Les fichiers du cœur de WordPress

D’autres fichiers présents à la racine du site ne figurant pas dans les 3 gros répertoires sont essentiels, parmi lesquels:

  • .htaccess : Ce fichier indique des règles de configuration pour le serveur Apache qui est utilisé par la plupart des hébergeurs. Si vous en faites une bonne utilisation, il peut optimiser le SEO, la sécurité, et les performances du site.
  • robots.txt : Ce fichier permet d’indiquer aux moteurs de recherche s’ils doivent ou non indexer votre site sur les moteurs de recherche.
  • wp-config.php : Contient des informations qui permettent la configuration et la connexion à la base de base de données du site, il peut aussi permettre des configurations supplémentaires pour le site.
  • license.txt : Ce fichier contient les informations de licence de WordPress.
  • readme.html : Ce fichier contient des informations sur la version de WordPress que vous utilisez et comment l’installer. Ce fichier n’est pas obligatoire.
  • index.php : Ce fichier affice le contenu du site lorsque les utilisateurs accèdent à la racine du nom de domaine. Il utilise également les templates du thème pour afficher les pages et les articles.

La base de données

Elle est créée lors de l’installation de WordPress, et est vitale pour gérer les informations du site. A chaque modification de votre site, ou lorsque vous affichez ce dernier, les fichiers PHP de WordPress concernés enverront une requête SQL à la base de données pour actualiser le contenu du site en puisant ou en ajoutant des informations dans la base. Cette base de données fonctionne grâce à un système de gestion de bases de données relationnelles appelé MySQL. Elle contient des données telles que les articles, pages, réglages des plugins, commentaires, révisions, options du site. La base de données d’un site WordPress, n’importe lequel contient 12 tables par défaut :

  • wp_users : gère les informations sur les utilisateurs du site, comme les noms d’utilisateur et les adresses e-mail.
  • wp_usermeta : gère les données supplémentaires sur les utilisateurs, comme les rôles et les autorisations (cette table n’est plus utilisée sur les nouveaux sites, tout étant dorénavant stocké dans wp_users).
  • wp_posts : gère les informations sur les publications, comme les titres et les contenus.
  • wp_comments : gère les informations sur les commentaires, comme les auteurs et les contenus.
  • wp_links : gère les informations sur les liens de blogroll (ancienne fonctionalité de wordpress).
  • wp_options : gère les informations de configuration pour le site, comme les paramètres de titre et de description.
  • wp_postmeta : gère les données supplémentaires sur les publications, comme les informations de média attachées.
  • wp_terms : gère les informations sur les termes de taxonomies, comme les catégories et les étiquettes.
  • wp_term_taxonomy : gère les informations sur les relations entre les termes et les taxonomies.
  • wp_term_relationships : gère les informations sur les relations entre les publications et les termes.
  • wp_commentmeta : gère les données supplémentaires sur les commentaires, comme les informations de média attachées.
  • wp_termmeta : gère les données supplémentaires sur les termes, comme les informations de média attachées.
Structure de la base de données MySQL d’un site WordPress

Les noms de tables sont préfixés par défaut par wp_ mais cela est paramétrable au moment de l’installation de WordPress pour des questions de sécurité.

Certaines extensions que vous installez sur votre site peuvent créer des tables supplémentaires dans la base de données pour permettre leur bon fonctionnement, et gérer des données qu’elles solliciteront.

Depuis phpMyAdmin, vous pouvez interagir avec la base de données et exécuter des requêtes, comme si c’était le site (du moins les fichiers PHP) qui le faisaient, par exemple, créer, modifier, supprimer ou afficher des tables, des champs ou des données, si tant est que vous maitrisez le langage SQL qui vous permet d’exécuter des requêtes.

Diagramme officiel de l’organisation des tables de la base de données d’un site WordPress

Conclusion

Le fonctionnement technique d’un site WordPress est à présent plus simple à comprendre. Retenez qu’un site WordPress, ce sont des fichiers (qui génèrent le CMS) et une base de données (qui gère les données du site) et que ces deux éléments centraux interagissent entre eux. Il n’est utile de toucher qu’aux fichiers wp-config.php et .htaccess ainsi qu’au sous répertoire wp-uploads, en effet, ce sont les seuls fichiers et le seul répertoire à ne pas être écrasés en cas de mise à jour. Si vous voulez personnaliser votre site WordPress, je vous conseille de passer par un thème enfant pour changer son apparence et sa mise en page. Cela vous permet de conserver les personnalisations lors des mises à jour du thème principal. Les plugins personnalisés représentent aussi une alternative pour ajouter des fonctionnalités supplémentaires à votre site WordPress sans toucher aux fichiers du noyau.

Vous avez apprécié cet article ?

En savoir plus sur l'auteur...

Rodolphe BERTOZZO

Etudiant freelance concepteur web