1. Création site Internet
  2. > Articles Techniques
  3. > Développement Web
  4. > Limiter les mises à jour de plugins Wordpress
Limiter les mises à jour de plugins Wordpress

Limiter les mises à jour de plugins Wordpress

samedi 13 septembre 2014, par Guillaume Orsal

Les mises à jour sous Wordpress sont très simples puisque l’administration du site vous prévient automatiquement qu’une nouvelle version, d’un plugin ou de Wordpress lui-même, est disponible. Mais le risque avec les mises à jour, c’est qu’elles entraînent une régression sur un point que vous aviez développé, ou plus simplement qu’elles posent problème avec le reste de votre site et que ce dernier ne fonctionne plus.

Il faut donc faire les mises à jour avec parcimonie et il peut devenir intéressant de limiter la fonctionnalité à quelques comptes. Ainsi, si vous développez un site pour un client, cela évitera qu’il fasse une mise à jour par inadvertance et casse le site.

 Désactiver les mises à jour automatiques

La première chose à faire est de désactiver les mises à jour automatiques dans le fichier wp-config.php. De mon point de vue, il vaut mieux que vous gardiez la main sur toutes les évolutions de votre site. L’inconvénient de cette méthode c’est qu’il faut rester informé à propos des correctifs qui sortent pour ne pas tarder à mettre à jour en cas de faille de sécurité.

La procédure est simple, il suffit d’ajouter la ligne suivante dans le fichier wp-config.php

define( 'AUTOMATIC_UPDATER_DISABLED', true );

 Filtrer les utilisateurs

Il est intéressant que seuls certains comptes administrateurs puissent faire les mises à jour. Pour cela, il faut modifier le fichier functions.php du theme en cours d’utilisation. A la toute fin du fichier, il suffit d’ajouter les lignes suivantes à l’intérieur des balises PHP :

// Limitation des mises à jours au compte indique ici.
$current_user = wp_get_current_user();
if ( $current_user instanceof WP_User ) {
   if ( $current_user->user_login != "login autorise" ) {
       remove_action( 'load-update-core.php', 'wp_update_plugins' );
       add_filter( 'pre_site_transient_update_plugins', create_function( '$a', "return null;" ) );
       remove_action( 'load-update-core.php', 'wp_update_themes' );
       add_filter( 'pre_site_transient_update_themes', create_function( '$a', "return null;" ) );
   }
}

Remplacer « login autorise » par le login qui pourra voir les mises à jour. Tous les autres ne verront aucune notification. La condition décrite ici peut-être modifiée selon d’autres critères, comme l’email ($current_user->user_email) ou l’ID utilisateur ($current_user->ID), ou bien encore en utilisant une liste de comptes :

in_array($current_user->user_login, array ("login A","login B","login C"))

Pour effectuer la modification, vous pouvez intervenir via le menu Apparence puis Editeur, mais je vous conseillerais de faire la modification directement dans le fichier soit sur le serveur, soit en local avant de le transférer par FTP. En effet, s’il y avait un problème, vous pourriez ne pas pouvoir revenir en arrière depuis l’interface administration, alors que depuis l’éditeur aucun soucis pour annuler une modification.

 A voir aussi

Plus d’informations sur la configuration des mises à jour automatiques dans la documentation de Wordpress.

Plus de détail sur le contenu de $current_user dans la doc Wordpress.

Spip | Plan du site | RSS 2.0 |
Habillage visuel © digitalnature sous Licence GPL