Nous allons voir comment mettre son site WordPress en maintenance directement depuis le FTP et sans utiliser des plugins.

Je vois beaucoup de monde utiliser un plugin pour mettre en maintenance leur site, lors de leur mise à jour ou pendant les maintenances.

Il n’y a pas forcément besoin d’utiliser un plugin pour faire ça, car WordPress est doté d’une fonctionnalité de maintenance par défaut.

Quand vous mettez à jour votre site via le backoffice, vous ne le voyez peut-être pas, mais WordPress active ce fameux mode maintenance et bloque l’intégralité du site ou de son backoffice.

L’idée aujourd’hui, et de faire exactement la même chose, mais de manière manuelle.

Comment mettre WordPress en mode maintenance

Lors des mises en production ou preproduction, il m’arrive souvent de mettre le site en mode maintenance pour m’assurer que les utilisateurs et/ou les administrateurs ne puissent pas changer ou voir du contenu avant que la nouvelle fonctionnalité soit en place.

Pour faire cela, je m’inspire de la méthode WP_Upgrader::maintenance_mode de WordPress. Si l’on regarde de plus près, il créer un fichier .maintenance à la racine du site avec du contenu PHP pour définir l’heure de début de la maintenance (avec $upgrading = TIMESTAMP).

Ensuite, lors du chargement d’une page, WordPress regarde si ce fichier existe, et si c’est le cas, il compare la variable $upgrading de notre fichier .maintenance; s’il la durée est supérieur à 10min, il considère que le site n’est plus en maintenance.

De notre côté, on ne veut pas de date de fin, car notre maintenance peut parfois durer plus de 10 minutes.

L’idée va être de créer un fichier .maintenance à la racine du site, et le contenu de la variable $upgrading sera dynamique (pour ne jamais dépasser les 10minutes).

<?php
// .maintenance
$upgrading = time();

Et voilà, on se retrouve avec un site en mode maintenance et personne ne peut y accéder, une fois la mise en production terminée, je supprime simplement ce fichier.

Maintenance depuis le thème WordPress

Une autre façon de faire qui est intéressante, c’est de passer par les hooks de WordPress depuis notre thème par exemple. Elle peut se faire directement depuis le FTP, ou par le site.

Etape 1 : Allez dans l’éditeur de fichiers des thèmes

Il se trouve dans Apparence => Editeur de fichiers des thèmes.

Si vous ne trouvez pas, votre compte n’a peut être pas les droits d’éditer ce fichier. Demandez à votre administrateur de le faire.

Etape 2 : Ouvrez le fichier functions.php

Dans la barre de navigation à droite, vous verrez quelque chose comme Fonctions du thème (functions.php).

Etape 3 : Ajouter le mode maintenance

Déplacez-vous tout en bas du fichier pour y rajouter le hook ci-dessous pour passer le site en mode maintenance :

add_action('get_header', function() {
	if (!current_user_can('edit_themes') || !is_user_logged_in()) {
		wp_die('<h1>En maintenance</h1><br />Indisponibilité temporaire pour cause de maintenance. Veuillez revenir dans un instant.');
	}
});

Comme vous pouvez le voir, on vérifie que l’utilisateur n’est pas identifié et on lui met le message de maintenance.

Cela est très pratique pour donner l’accès aux administrateurs sur le site.

Commentaires

N'hésitez pas à me laisser un petit commentaire pour que l'on discute ensemble de cet article.

Laisser un commentaire

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

Articles reliés

Retrouvez ci-dessous quelques articles qui pourrait vous intéresser.

Serveur MySQL Réplication
16
Mar

Créer un serveur MySQL de réplication (slave) des données existantes

MySQL Master-Slave Replication est une procédure permettant de répliquer en temps réel les données d’un serveur MySQL vers un autre. Nous allons voir ensemble comment mettre cette combinaison en place. Nous ne sommes pas à l’abri d’un incident sur nos serveurs de production et cela même avec un backup journalier de nos bases de données. …

Voir plus
Vider le cache chrome avec la console
17
Avr

Comment vider son Cache Chrome

Il n’est parfois pas évident d’expliquer aux utilisateurs que sur la version en préproduction, il y a eu pas mal de changement sur le style ou dans les pages et qu’ils doivent vider leur cache Chrome.

Voir plus