Mise à jour WordPress - gestion des mises à jour automatiques

Gérer la mise à jour de WordPress

Les mises à jour de WordPress sont essentielles pour la maintenance de votre site internet. Mettre à jour votre site internet permet de conserver, dans le temps, un système cohérent, performant et présentant un bon niveau de sécurité. Ces mises à jour automatiques ou manuelles peuvent concerner le noyau de WordPress, les thèmes ou les plugins utilisés sur le site. Certaines mises à jour sont mineures, d’autres majeures et par définition sensibles, il est donc important de comprendre ces particularités afin d’adapter une bonne stratégie de mise à jour de votre site WordPress pour éviter d’éventuels problèmes.

Les mises à jour du cœur (le core) de WordPress

Le cœur de WordPress correspond à un ensemble de fichiers gérant les configurations et la logique du système :

  • L’espace d’administration
  • La gestion des bases de données
  • Le router, le blog interne
  • Les envois d’e-mails
  • Le chargement de la structure
  • La gestion des utilisateurs
  • Les éditeurs
  • etc.

Quelques fichiers de styles utilisés par défaut (notamment par Gutenberg) font aussi partie du core de WordPress.

Les mises à jour vont donc généralement permettre d’améliorer la sécurité globale du système en corrigeant des failles ou des bugs, à implémenter des améliorations (souvent préalablement testées sous forme d’extensions), et à mettre à jour le code source pour l’adapter aux évolutions de PHP et des différentes librairies utilisées sur le CMS.

Les mises à jour des thèmes de WordPress

Les mises à jour de votre thème WordPress lui permettent d’améliorer les fonctionnalités, l’affichage et les options proposés. Elles permettent aussi d’assurer sa compatibilité avec les autres composants du site, notamment à l’occasion de mises à jour majeures du CMS. D’autres se contentent de corriger quelques failles de sécurité du thème WordPress ou d’y apporter quelques modifications à la marge.

Il existe plusieurs situations nécessitant de désactiver, ou d’activer les mises à jour automatiques des thèmes. Dans tous les cas de figure, il faudra veiller à créer un thème enfant WordPress pour vous éviter de perdre vos configurations existantes.

Les mises à jour de traduction

Les mises à jour de traduction concernent essentiellement le cœur de WordPress, mais aussi les thèmes natifs de WordPress ainsi que certains plugins.

Je n’ai encore jamais assisté à aucun conflit à la suite d’une mise à jour de traduction, mais n’hésitez pas à me l’indiquer si vous avez rencontré cette situation 😉.

Les mises à jour des plugins WordPress

Les plugins accessibles depuis le répertoire de WordPress bénéficient du système interne de mises à jour du CMS. Néanmoins, une API permet aux plugins commerciaux de se connecter à ce système afin de permettre à l’utilisateur WordPress d’activer la mise à jouir automatique pour chaque plugin du site.

Dans certaines situations il peut être utile de désactiver les mises à jour automatiques, pour l’ensemble des plugins installés ou de façon plus sélective pour certaines extensions seulement.

Les raisons de mettre à jour son site WordPress

Comme tous les CMS de sa catégorie, WordPress est un système incluant beaucoup de fonctionnalités (internes ou tierces parties), de librairies et autres API qui devront être régulièrement mis à jour – maintenus. Votre site WordPress contiendra potentiellement un certain nombre de plugins installés par vos soins, ainsi que des thèmes natifs ou achetés dans le commerce.

Via les mises à jour du site, tous ces éléments proposeront diverses évolutions leur permettant d’améliorer ou d’inclure de nouvelles fonctionnalités, d’assurer leur compatibilité avec le système WordPress, de résoudre des conflits ou de maintenir un bon niveau de sécurité pour chacun de ces éléments.

Résoudre les bugs et les conflits, assurer la compatibilité des librairies

Les évolutions de WordPress intègrent en permanence de nouvelles fonctionnalités, et des mises à niveau du code source (PHP ou JavaScript) utilisé.

Il n’est ainsi pas rare de voir apparaître quelques bugs plus ou moins importants du fait d’un retard de mise à jour de tel ou tel composant.

Une mise à jour régulière des thèmes et plugins du site permettra de résoudre une bonne partie de ces bugs, faisant de ces éléments de bons candidats aux mises à jour automatiques sur un site WordPress. Si un bug apparaît sur votre site à la suite d’une mise à jour, n’hésitez pas à demander une prestation de maintenance auprès d’un webmaster ou d’un développeur WordPress. Il pourra certainement intégrer un correctif temporaire en attendant une nouvelle mise à jour proposée par l’éditeur du thème ou de l’extension concernée.

Assurer la sécurité

Les hackers experts en piratage de sites web utilisent les failles de sécurité des sites, thèmes ou extensions non mis à jour. Il est donc important de tenir son site WordPress à jour, soit en ayant recours aux mises à jour automatiques, soit en les assurant manuellement.

Activation des mises à jour automatiques

Depuis la version 5.5 du CMS, WordPress propose un système de mises à jour automatique de l’ensemble du cœur, mais aussi des thèmes et des plugins installés.

Mises à jour automatiques du core (cœur) de WordPress

Les mises à jour automatiques du système de WordPress incluent les updates mineurs et majeurs, les évolutions fonctionnelles, les corrections de bugs et les mises à jour de sécurité.

Depuis la page d’administration des mises à jour, il est possible de désactiver globalement ces mises à jour, excepté les mises à niveau de sécurité de WordPress.

Activation des mises à jour automatiques du coeur (le noyau) de WordPress

Mises à jour automatiques des extensions

Il est désormais possible d’activer individuellement les mises à jour automatiques des plugins WordPress via la page d’administration des extensions. Un lien « Activer les mises à jour auto » est proposé à l’utilisateur, ainsi qu’un menu lui permettant de grouper l’activation ou la désactivation de cette fonctionnalité.

Activation des mises à jour automatiques des plugins (les extensions) de WordPress

Mises à jour automatiques du thème de   votre site WordPress

Les thèmes WordPress peuvent aussi être mis à jour automatiquement directement depuis la fiche du thème, accessible en page d’administration des thèmes du site. Les thèmes payants ne proposeront généralement pas cette fonctionnalité. Je ne saurai trop vous encourager à créer votre thème enfant si ce n’est déjà fait, avant tout mise à jour du thème de votre site WordPress.

Activation des mises à jour automatiques d'un thème natif de WordPress

Gestion des mises à jour automatiques

Si les mises à jour automatiques de WordPress sont un « plus » incontestable pour le confort et la sécurité des sites, elles peuvent aussi poser quelques difficultés dans la maintenance des sites bénéficiant de fonctionnalités variées.

Le nombre de développeurs ou d’éditeurs d’extension étant conséquent, il peut être difficile de maintenir un écosystème stable en s’appuyant exclusivement sur les mises à jour automatiques du site.

Heureusement, les équipes de WordPress ont pensé à fournir aux webmasters et aux utilisateurs un certain nombre d’outils relativement faciles à intégrer pour définir avec précision les éléments pouvant bénéficier des mises à jour automatiques sur le site.

wp-config.php

Depuis WordPress 3.7, il est possible de définir les mises à jour automatiques dites « d’arrière-plan » directement dans le fichier de configuration config.php.

Pour rappel, ce fichier se trouve à la racine du répertoire d’hébergement du site WordPress, et pourra le modifier à l’aide d’un éditeur tel que Notepad++, Netbeans, visual Studio, etc.   

Dans ce fichier, les configurations sont définies à l’aide de constantes PHP.

Ainsi, pour désactiver l’ensemble des mises à jour automatiques, on définira la constante AUTOMATIC_UPDATER_DISABLED  à true :

define( ‘AUTOMATIC_UPDATER_DISABLED’, true ); 

La constante WP_AUTO_UPDATE_CORE permet de gérer les mises à jour automatiques du cœur (le noyau) de WordPress. Elle peut prendre 3 valeurs permettant d’activer ou de désactiver les mises à jour du système (true ou. false) ou de n’activer que les mises à jour automatiques mineures :

define( ‘WP_AUTO_UPDATE_CORE’, true );

define( ‘WP_AUTO_UPDATE_CORE’, false );

define( ‘WP_AUTO_UPDATE_CORE’, ’minor’);

Il peut parfois être plus simple pour un utilisateur, de modifier le fichier de fonctions d’un thème que le fichier de configuration. Un système de filtres PHP pourra donc être utilisé au sein du fichier functions.php du thème courant ou dans un plugin développé à cet effet.

Votre devis en 48 H chrono !

Demandez à être rappelé !

Nous préciserons ensemble votre projet
de vive voix 

Configuration des mises à jour automatiques. À l’aide de filtres

Le système de filtres permet de modifier des données dans les processus d’affichage ou de traitements fonctionnels de WordPress. Ils nous permettent ici de modifier l’activation ou la désactivation des mises à jour dans le processus de recherche automatique des updates.

N.B. on remarque ici l’utilisation de valeurs de chaînes en lieu et place des fonctions callback généralement attendues :

Le filtre “automatic_updater_disabled” permet de désactiver la totalité des mises à jour automatiques.

add_filter( « automatic_updater_disabled », ‘__return_true’ ) || “__return_false”

 “auto_update_core” permet ‘interdire les mises à jour du cœur de WordPress, option qui peut s’avérer utile lorsque le serveur présente certaines limites ou que certains plugins sont conservés sur des versions plus anciennes.

add_filter( “auto_update_core”, “__return_false” );

Le mode de développement introduit depuis WordPress 6.3, permet de définir un site comme plateforme de développement de fonctionnalité de noyau, de thème, de plugin ou des trois. Dans l’un de ces cas de figure, il peut être intéressant de désactiver les mises à jour automatiques du cœur afin de préserver un environnement de développement stable.

add_filter( 'allow_dev_auto_core_updates', '__return_false' ); 

De la même façon, il pourra être intéressant de désactiver les mises à jours automatiques ciblant les updates mineures ou majeures, ou, comme dans le fichier de configuration des mises à jour de plugins ou de thèmes :

add_filter( 'allow_minor_auto_core_updates', '__return_false' );// Enable minor updates

add_filter( 'allow_major_auto_core_updates', '__return_false' );// Enable major updates

add_filter( 'auto_update_plugin', '__return_false' );

add_filter( 'auto_update_theme', '__return_false' );

Mises à jour automatiques conditionnelles

Il est possible de contrôler les mises à jour par type, par élément et de façon conditionnelle à l’aide des filtres auto_update_{$type} où $type peut valoir « core », « plugin », « theme » ou « translation ».

add_filter( « auto_update_{$type} », « my_fnc », 10, 2 ) ;

Il est ainsi possible de cibler un ou plusieurs éléments, et de renvoyer true ou false pour forcer ou empêcher la mise à jour quoi qu’il arrive, ou $update pour s’en remettre à la valeur par défaut ou au choix de l’utilisateur.

Ici nous cherchons à forcer les mises à jour automatiques pour des plugins Yoast et Contact Form 7, tout en basculant sur la configuration par défaut ou le choix de l’utilisateur s’il existe.

Le filtre correspondant aux mises à jour des extensions, $item correspondra ici à un objet présentant des informations sur chaque plugin installé sur le site. $update est une valeur valant true, false ou null, correspondant à la configuration pour ledit plugin.

Si le slug du plugin courant est inclus dans notre tableau, on retour true pour en force la mise à jour :

function my_fnc( $update, $item ){

            $plugins = [ “yoast”, “cf7” ];

            If( in_array( $item->slug, $plugins ){

                        return true;

            }else{
            //retourne de statut auto_update du plugin courant.

            return $update;

            }

}

add_filter( « auto_update_plugin », « my_fnc », 10, 2 ) ;

Gestion des envois e-mail de notification des mises à jour

N.B. Il est aussi possible de désactiver les e-mails de notification des mises à jour. Ce filtre WordPress se révèle très utile à un prestataire disposant d’un système centralisé de gestion de maintenance, ou lorsque le propriétaire du site dispose d’une identité d’administrateur du site web.

add_filter( « auto_core_update_send_email”, “__return_false” );

Un plugin pour gérer la mise à jour de WordPress ?

L’un des plugins en vue pour la gestion des mises à jour automatiques de WordPress est l’extension Companion Auto Update. Elle reprend peu ou prou les fonctionnalités programmatiques que nous venons de voir, via une interface simple et pratique. EN voici une revue rapide.

Tableau de bord de l’extension Companion Auto Update

De façon assez logique, on retrouvera sur la page de réglages du plugin la possibilité d’activer ou désactiver les mises à jour automatiques pour :

  • Les extensions
  • Les thèmes
  • Les mises à jour mineures (de la version courante)
  • Les mises à jour majeures (de la version courante)
  • Les fichiers de traduction
Plugin WordPress Companion-auto-update, sélection des mises à jour automatiques

Une configuration des envois d’e-mail de notification de mises à jour propose :

  • Un choix d’alerte avant ou après la mise à jour
  • Une notification d’obsolescence des plugins
  • Les éléments de base (heure et lien) à intégrer à l’e-mail envoyé
  • L’activation des notifications de mise à jour du cœur de WordPress
  • Les avertissements de besoin de mise à jour de la base de données
Plugin WordPress Companion-auto-update, gestion des notifications e-mails des mises à jour automatiques

Enfin, une configuration du jour et de l’heure des recherches de mises à jour de WordPress est proposée. Il s’agit finalement de paramétrer une tache CRON sur votre site WordPress.

Plugin WordPress Companion-auto-update, gestion taches de mises à jour automatiques

Désactivation de mises à jour automatiques par plugins

Le deuxième ongle de la page de réglage du plugin Companion Auto Update propose un tableau des extensions installées présentant leur statut de mises à jour automatiques ainsi qu’un bouton d’activation/désactivation de la fonctionnalité.

Extension WordPress Companion-auto-update, filtre des mises à jour des plugins

Journal des mises à jour de votre site WordPress

Enfin un journal des mises à jour et de leur méthode est proposé, très pratique pour avoir rapidement une vue d’ensemble sur les mises à jour à prévoir sur le site WordPress.

Plugin Companion-auto-update, journal des mises à jour WordPress

Voilà, vous en savez désormais suffisamment pour prendre en main les mises à jour automatiques et manuelles de votre site WordPress… mais rappelez-vous : pensez à faire systématiquement et régulièrement vos sauvegardes avant vos updates 😉

Laisser un commentaire

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