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 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.
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.
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’administrationCe 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.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.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.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.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.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.
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.