WordPress 3.7
Les mises à jours automatiques

Je ne fais jamais d’annonce de sortie des versions de WordPress, d’autres sites et twitter le font très bien, mais là, j’avais envie de vous parler un peu des mises à jour automatiques et de leur paramétrage. De plus, 2 nouvelles defines sont apparues, ce qui rends mon e-book sur les constantes déjà obsolète !

Configurer les mises à jour automatique en arrière-plan

« En arrière-plan », c’est bien sûr sans votre aide que WordPress pourra se mettre à jour, c’est tout l’intérêt de la chose. Fini de se soucier de mettre à jour votre version 3.x.0 en 3.x.1. WordPress s’en charge discrètement. Le but est de promouvoir une meilleure sécurité, car oui, les version x.x.x, contrairement aux x.x sont généralement des mises à jour de sécurité ou de bugs à régler au plus vite.

Pas de panique justement, par défaut seules ces mises à jours mineures (x.x.x, version avec 3 niveaux de chiffres) et les traductions sont mises à jour en arrière-plan.

Dans WordPress 3.7, il existe quatre types de mises à jour automatiques de fond :

  1. Les mises à jour du core,
  2. Les mises à jour de plugins,
  3. Les mises à jour de thème,
  4. Les mises à jour de fichiers de traduction.

Mises à jour du core

Elles sont subdivisées en trois types :

  1. Les mises à jour de développement du core,
  2. Les mises à jour mineures du core, tels que les patchs sécurité et de bugs
  3. Les mises à jour majeures.

Par défaut, les mises à jour automatiques ne sont activées que pour les versions mineure du core et les fichiers de traduction.

WP_AUTO_UPDATE_CORE

Voici la première nouvelle constante, elle est utilisée pour activer les mises à jour automatiques pour les versions majeures du core, son nom est donc WP_AUTO_UPDATE_CORE.

Vous pouvez définir cette constante de trois façons vous permettant ainsi de couvrir plusieurs types de mises à jour à la fois.

WP_AUTO_UPDATE_CORE peut être définie avec l’une de ces trois valeurs, produisant un comportement différent à chaque fois :

  • La valeur TRUE (bool): Mises à jour majeures et mineures activées.
  • La valeur FALSE (bool) : Mises à jour majeures et mineures désactivées.
  • La valeur 'minor' (string) :  Mises à jour mineures activées, majeures désactivées.

Des filtres finement réglés

Disons plutôt que vous souhaiteriez que l’activation ou la désactivation de ces trois types de mises à jour du core soient faites de manière sélective. C’est là que les filtres allow_dev_auto_core_updates, allow_minor_auto_core_updates, et allow_major_auto_core_updates entrent en jeu.

Il y a déjà deux fonctions intégrées dans WordPress qui vous permettront d’activer ou de désactiver certains types de mises à jour facilement, en une ligne. Il s’agit de __return_true() et __return_false. Voici quelques exemples de filtres :

Pour activer spécifiquement les mises à jour dev (nightly builds), utilisez le filtre suivant :

add_filter (‘allow_dev_auto_core_updates’, ‘__return_true’);

Pour désactiver spécifiquement mises à jour mineures, utilisez le filtre suivant :

add_filter (‘allow_minor_auto_core_updates’, ‘__return_false’);

Pour activer spécifiquement mises à jour majeures, utilisez le filtre suivant :

add_filter (‘allow_major_auto_core_updates’, ‘__return_true’);

Mises à jour des Plugins & Thèmes

Les mises à jour des plugins et thèmes sont désactivées par défaut. Pour les activer, vous pouvez faire appel au filtre auto_update_$type, où $type vaudra « plugin » ou « theme ».

Pour activer les mises à jour automatique des plugins, faites ceci :

add_filter( ‘auto_update_plugin’, ‘__return_true’ );

Pour activer les mises à jour automatique des thèmes, faites ceci :

add_filter( ‘auto_update_theme’, ‘__return_true’ );

Mises à jour de traduction

Les mises à jour automatiques des fichiers de traduction sont activées par défaut, comme les mises à jour mineures du core.

Pour désactiver les mises à jour de fichiers de traduction, utilisez le filtre suivant :

add_filter (‘auto_update_translation’, ‘__return_false’);

Désactivation de mises à jour automatiques

Les développeurs du core ont pris une décision délibérée d’activer par défaut les mises à jour automatiques pour les versions mineures et les fichiers de traduction. À l’avenir, ce sera l’un des meilleurs moyens de garantir que votre site reste à jour, fiable et, à ce titre, la désactivation de ces mises à jour est fortement déconseillée.

Mises à jour du core

Vous pouvez tout de même désactiver les mises à jour spécifiquement du type core en vous appuyant sur ​​le filtre auto_update_$type, où $type serait remplacé par « core ».

Pour désactiver les mises à jour du type core uniquement, utilisez le filtre suivant :

add_filter (‘auto_update_core’, ‘__return_false’);

Toutes les mises à jour

Pour désactiver complètement tous les types de mises à jour automatiques, du core ou autre, nous faisons appel à la seconde nouvelle constante liée à ces mises à jour automatique : AUTOMATIC_UPDATER_DISABLED

Ajoutez la ligne suivante dans votre fichier wp-config.php :

define (‘AUTOMATIC_UPDATER_DISABLED’, true);

Pour être sûr, vous devez également ajouter ce qui suit à un plugin ou muplugin ou le fichier functions.php de votre thème :

add_filter (‘automatic_updater_disabled’, ‘__return_true’);

Vous êtes maintenant parés pour paramétrer correctement les mises à jour automatiques, pensez-vous les laisser activer, ou plutôt les désactiver ?

Lire la suite

Vous aimez ? Partagez !

24 commentaires

  1. Greg · octobre 25, 2013
    En résumé, les constantes pour régler tout (core + thèmes + plugins + langues) sur le même niveau, « minor » par exemple ; et les filtres pour faire au cas par cas. Jébon ?

    Par contre il faudra voir de qui, de la constante ou du filtre, prend le dessus lorsque leurs valeurs s’opposent.

    Merci pour le récap’.

    (non je dis pas bonjour, on était ensemble sur Skype toute à l’heure :D )

    • Julio Potier · octobre 25, 2013
      tabon
      Le filtre automatic_updater_disabled prends le dessus sur AUTOMATIC_UPDATER_DISABLED.
      De rien.
      (non je ne dis pas merci on était sur Skype en 2011)
  2. Marian DENYS · octobre 25, 2013
    Merci pour ce récapitulatif très rapide même. Pour ma part je vais désactiver ces mises à jours pour la bonne et simple raison c’est que si la maj a lieu pendant la nuit et que ça pose un problème sur le site, cela pourrait avoir un impact sur le bon fonctionnement du site (surtout au niveau des plugins, etc).
    • Julio Potier · octobre 25, 2013
      C’est le danger, la preuve, 3.7 est arrivée cette nuit. Par contre tu peux laisser les autoupdates pour les versions mineures qui ne font jamais péter un site, cela ne change jamais le fond, mais corrige un bug ou ajoute de la sécu.
  3. Chibani · octobre 25, 2013
    Je ne sais que penser de ces MAJ silencieuses.
    Déjà, les notifications d’update + MAJ assistées étaient bien pratiques, mais nécessitaient de passer régulièrement dans l’admin pour vérifier la présence d’un MAJ.

    En lieu et place des MAJ silencieuses, j’aurai préféré des notifications par email, par exemple. (Je me le suis fait sous forme de plugin, mais ça aurait clairement pu venir en standard).

    Le problème que j’ai vis à vis de ces MAJ silencieuses, c’est le risque d’avoir un thème/plugin qui utiliserai une fonction depréciée. Je sais qu’on est supposé faire gaffe au code qu’on utilise/crée, mais les clients trouvent toujours ce joli plugin supplémentaire à installer (vous savez le seul mal-choisi parmi les autres :D ).

    Je pense que je vais bloquer de facto les MAJ auto, trop casse-gueule à mon avis.

    Quelle est votre bonne pratique (ou bon conseil) à ce propos ?

    • Julio Potier · octobre 25, 2013
      Personnellement, mes clients ne peuvent pas installer de plugins supplémentaires et s’il trouvent le moyen de le faire, alors c’est leur problème, je facture de la maintenance, pas de stress.
      Ensuite je vais laisser les autoupdates pour les versions mineures, ces versions ne cassent pas les sites. Idem pour les traductions, je laisse tourner. Les plugins je vais voir ça au cas par cas je pense. Pour les thèmes c’est NON et pour le core ça sera NON aussi.
      Rien que ce matin, la mise à jour 3.7 fait péter un message d’erreur pour tous les utilisateurs de WP Rocket car une fonction est passée dépréciée et cette fois WordPress n’a pas géré de rétrocompatiblité :O
      Voilà !
  4. Pierre MOBIAN · octobre 25, 2013
    Je crois que Julio a bien résumé : une fonction essentielle d’un tel CMS donc fort bienvenue, mais à utiliser à bon escient.
    Je pense qu’on ne peut pas se permettre de mettre à jour le core sans vérification minimum, et qu’on ne peut pas se permettre de ne pas effectuer des mises à jour « mineures » le plus vite possible.
    Typiquement et vu la qualité de travail des équipes de WP, les corrections dites mineures (parfois des patches de sécurité critiques) ne casseront jamais un fonctionnement. Je préfère malgré tout un dysfonctionnement partiel et temporaire d’un site qu’une injection MySQL ou redirection vers une pharmacie douteuse et un site blacklisté dans Google, c’est mon côté ayatollah de la sécurité.
    Ce changement WP 3.7 rend aussi certains de nos outils de détection de versions WP un peu obsolètes, mais tout ce qui va dans le sens d’une gestion facilitée de WordPress est une bonne chose, surtout avec un nombre important de sites.
    Bonne journée à tous.
    • Julio Potier · octobre 25, 2013
      « Je pense qu’on ne peut pas se permettre de mettre à jour le core sans vérification minimum » c’est ce qui revient le plus souvent. C’est aussi pour cela que ce n’est pas activé par défaut, ceci peut être utile sur des plateformes de recettes, de tests, de démo, mais pas en production en fait.
      Merci
  5. Frederic Champion · octobre 25, 2013
    J’avais peur que cette maj auto-update toutes les versions de WP, savoir que par défaut, seules les versions mineures le seront est très intelligent. Cela va me permettre de dormir enfin sur deux oreilles, de continuer à facturer de la maintenance aux clients pour mettre à jour WP sur les versions majeures avec du backup + test de compatibilité (ce qui est une bonne chose), mais sans avoir à facturer inutilement des mises à jours mineures mais nécessaires. Les clients vont pouvoir faire des économies et les développeurs n’auront pas à se taper les updates toutes les 3 semaines X le nombre de sites gérés. Et du coup ce concentrer sur un meilleur développement ;)

    Chouette chouette chouette…
    On va quand même garder un œil attentif sur chaque update mineure sur les sites les plus sensibles.

    • Julio Potier · octobre 25, 2013
      Oui la décision est intelligente, et pareil que toi, je continue à MAJ les versions majeures à la main.
      « se taper les updates toutes les 3 semaines » tssss genre toutes les 3 semaines ya une update WP… HO WAIT ! La 3.8 arrive dans 35 jours ;) (maxi 65)
  6. Geoffrey · octobre 25, 2013
    Hello,
    Merci Julio pour ce bon récap :)
    Bonne journée.
    • Julio Potier · octobre 25, 2013
      Merci à toi de m’avoir lu et RT ! Je t’ai remis un lien pour la peine ^^
  7. Aurélien Denis · octobre 25, 2013
    En effet, l’équipe de développement a très bien pensé le truc. Aucun impact de faire les mineures (idem pour les traductions).

    Ca fait des années que je le fais pour mes clients sans soucis. La possibilité de le faire pour les plugins est chose intéressante pour des projets sur lesquels on travaille avec des plugins reconnus dont les mises à jour sont toujours faites. A voir donc !

    Article très complet au passage ! ;)

    • Julio Potier · octobre 25, 2013
      Tu as raison et ils ont plus de 150000 MAJ auto depuis le lancement de ces tests et aucun en bug, balaise.
      Je suis en train de faire valider un plugin (si tu lis mes tweets récents tu vas trouver du tease) qui va nous permettre de gérer les plugins et thèmes qui sont autorisés à être mis à jour en autoupdate !
  8. Dupuy Jenny · octobre 25, 2013
    Cette fonctionnalité est intéressante, mais il me semblait que sur le codex, on nous incitait à effectuer une sauvegarde complète et à désactiver les extensions, or dans ce cas, il n’y aura rien de tout cela, est-ce gênant, dangereux ?
    Que faire si une mise à jour se passe mal ? Quelle politique de sauvegarde recommandez-vous ?
    • Julio Potier · octobre 25, 2013
      Le danger qu’un plugin plante le site existe. C’est pour cela que les plugins ne sont pas MAJ automatiquement par défaut. Il n’est pas conseillé de MAJ auto la core (majeure), les plugins et les thèmes sur des sites en production.
  9. Gasty · octobre 25, 2013
    En définitive, ce n’est pas une version qui fait l’unanimité dès que la plupart cherchent comment désactiver et garder la main.
    • Julio Potier · octobre 25, 2013
      Dommage de vouloir désactiver les mises à jour mineures. Votre navigateur se mets aussi à jour sans vous le demander et ça ne semble pas trop poser de problèmes par contre.
      Allons de l’avant, ça change, changeons avec. Il y a beaucoup de réflexion dans tout ça et ça serait dommage de passer à côté.
  10. Gilbert · octobre 25, 2013
    Bonjour,
    Ce sujet m’intéresse, car je veux également désactiver la mise à jour automatique.
    Le code define (‘AUTOMATIC_UPDATER_DISABLED’, true); est à placer sous cette ligne: define(‘WP_DEBUG’, false);
    C’est bien cela?
    Merci d’avance.
  11. Sylvain · octobre 25, 2013
    Pour ma part, je vais désactiver les mises à jour automatiques pour plusieurs raisons: svn, meilleure contrôle par validation, plusieurs front-ends.

    Un browser est pour un utilisateur – Si ça plante – une seule personne est affectée.

    Pour mon WordPress – J’ai une multitude de plugin perso que WordPress ne contrôle et ne peut valider.

    Je trouve que laisser le contrôle à un outil externe, c’est fair du cowboy :)

    Nulle doute que pour un petit site maison, ça peut aller mais pas lorsqu’on a une plateforme de plus de 500 blogues avec des milliers de lecteurs quotidiens.

    Merci pour les infos pertinentes Julio. Comme toujours, elles sont pertinentes et fiables :)

    Un développeur… un peu conservateur !!

    • Julio Potier · octobre 25, 2013
      Hello

      Pas de soucis, ça se défends. J’avoue que 500 blogs à mettre à jour, on évite surement de laisser les MAJ auto pour les plugins, mais je te conseille quand même de le faire pour les versions mineures qui n’ajoutent ni n’enlève de fonctionnalités dans WordPress.

      Bonne soirée

  12. phil · octobre 25, 2013
    Juste pour faire un petit retour d’expérience.

    J’ai découvert que le site d’un client était cassé suite à une mise à jour. La raison, un manque d’espace disque.
    Il a donc coincé à un moment.

    Donc rien n’est jamais parfait …

  13. Antoine Brossault · octobre 25, 2013
    Article toujours d’actualité.
    Très utile pour les clients qui ne souhaite pas s’engager sur une prestations de maintenance.
    Je leur met les mises à jour auto, ca évite qu’il fasse complètement n’importe quoi.