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.

WordPress 5.5 - Environnement Type
15
Août

Types d’environnements sous WordPress 5.5

Introduction à la nouvelle fonction wp_get_environnement_type() sur WordPress 5.5 nous permettant de savoir sur quel type d’environnement on se trouve. Très pratique pour les développeurs de thèmes ou de plugins d’effectuer des tâches précises en fonction du type d’environnement.

Voir plus
06
Mar

Champ ACF en fonction de la profondeur du menu dans WordPress

ACF propose de pouvoir rajouter des champs personnalisés à un élément de menu, mais il ne propose pas de pouvoir l’assigner uniquement à un niveau de profondeur, nous allons découvrir comment le mettre en place simplement. Pour ce faire, nous allons rajouter un nouveau type de règle qui sera assigné au sous-niveau Formulaire, on lui…

Voir plus