[iMacros] Mise à jour de tous vos WordPress en un clic

Je vous offre une macro très simple pour mettre à jour vos diverses installations de WordPress et/ou les plugins liés, en un clic.

On commence avec une vidéo de démo, et une bande son qui pète (je retrouve le nom de son auteur dès que possible, après appel à un ami d’enfance).


Vidéo : Mettre à jour tous ses WordPress en un clic

Musique : « Pelouse Interdite », album : « Première Tonte », groupe originaire de la Meilleraie à Varades (44 370) où j’ai vécu, charmant village de pêcheurs (inondable) sur les bords de la Loire.

La macro (dernière mise à jour le 23/02/2012 à 17h10) :

Que WordPress

VERSION BUILD=7300701 RECORDER=FX
TAB T=1
' Décommentez la ligne ci-dessous si vous souhaitez ignorer les erreurs, chose que je ne vous recommande pas.
' SET !ERRORIGNORE YES

' Chemin où se trouve votre fichier source (= liste des blogs)
CMDLINE !DATASOURCE C:\Users\Bertiranozor\Documents\iMacros\blogs_update_wp.csv
' Structure du fichier : "http://www.example.com/","admin","mot de passe" (un WP par ligne)
' "mot de passe" est facultatif, ça dépend de si vous sauvegardez ou non vos MDP dans Firefox. Si ce  n'est pas le cas, décommentez la ligne qui suit puis commentez celle d'après :
'SET !DATASOURCE_COLUMNS 3
SET !DATASOURCE_COLUMNS 2
SET !DATASOURCE_LINE {{!LOOP}}

' Des fois ça prend vachement de temps so...
SET !TIMEOUT 180
' Mais on ne veut pas non plus qu'il passe 18 secondes à chercher un tag introuvable, 2 suffiront :
SET !TIMEOUT_STEP 2

URL GOTO={{!COL1}}wp-login.php
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:loginform ATTR=ID:user_login CONTENT={{!COL2}}
SET !ENCRYPTION NO
'Décommentez la ligne qui suit si z'avez une 3ème colonne avec vos MDP.
'TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:loginform ATTR=ID:user_pass CONTENT={{!COL3}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:loginform ATTR=ID:wp-submit
URL GOTO={{!COL1}}wp-admin/plugins.php?plugin_status=all
TAG POS=2 TYPE=INPUT:CHECKBOX FORM=NAME:NoFormName ATTR=* CONTENT=YES
' On désactive tous les plugins
TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=NAME:action CONTENT=%deactivate-selected
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=ID:doaction
URL GOTO={{!COL1}}wp-admin/update-core.php
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:upgrade ATTR=ID:upgrade
URL GOTO={{!COL1}}wp-admin/plugins.php
' On réactive que les plugins récemment désactivés
URL GOTO={{!COL1}}wp-admin/plugins.php?plugin_status=recently_activated
TAG POS=2 TYPE=INPUT:CHECKBOX FORM=NAME:NoFormName ATTR=* CONTENT=YES
TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=NAME:action CONTENT=%activate-selected
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=ID:doaction
'Le temps de vérifier que tout s'est bien passé, vous pouvez commenter les 3 lignes qui suivent si vous êtes un cow-boy.
WAIT SECONDS=2
URL GOTO={{!COL1}}
WAIT SECONDS=2

Que les plugins

VERSION BUILD=7300701 RECORDER=FX
TAB T=1
' Ici vaut mieux décommenter la ligne ci-dessous car parfois les plugins et/ou les thèmes sont à jour.
SET !ERRORIGNORE YES

' Chemin où se trouve votre fichier source (= liste des blogs)
CMDLINE !DATASOURCE C:\Users\Bertiranozor\Documents\iMacros\blogs_update_wp.csv
' Structure du fichier : "http://www.example.com/","admin","mot de passe" (un WP par ligne)
' "mot de passe" est facultatif, ça dépend de si vous sauvegardez ou non vos MDP dans Firefox. Si ce  n'est pas le cas, décommentez la ligne qui suit puis commentez celle d'après :
'SET !DATASOURCE_COLUMNS 3
SET !DATASOURCE_COLUMNS 2
SET !DATASOURCE_LINE {{!LOOP}}

' Ici ça prend rarement énormément de temps, mais on va jouer la sécurité tout de même...
SET !TIMEOUT 90
' Mais on ne veut pas non plus qu'il passe 18 secondes à chercher un tag introuvable, 2 suffiront :
SET !TIMEOUT_STEP 2
 
URL GOTO={{!COL1}}wp-login.php
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:loginform ATTR=ID:user_login CONTENT={{!COL2}}
SET !ENCRYPTION NO
'Décommentez la ligne qui suit si z'avez une 3ème colonne avec vos MDP.
'TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:loginform ATTR=ID:user_pass CONTENT={{!COL3}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:loginform ATTR=ID:wp-submit
 
' On passe à la mise à jour des plugins
URL GOTO={{!COL1}}wp-admin/plugins.php?plugin_status=upgrade
TAG POS=2 TYPE=INPUT:CHECKBOX FORM=NAME:NoFormName ATTR=* CONTENT=YES
TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=NAME:action CONTENT=%update-selected
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=ID:doaction
URL GOTO={{!COL1}}wp-admin/plugins.php
WAIT SECONDS=1

' On passe à la mise à jour des thèmes si besoin
URL GOTO={{!COL1}}wp-admin/update-core.php
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=NAME:upgrade-themes ATTR=ID:themes-select-all CONTENT=YES
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:upgrade-themes ATTR=ID:upgrade-themes
'Le temps de vérifier que tout s'est bien passé, vous pouvez commenter les 3 lignes qui suivent si vous êtes un cow-boy.
WAIT SECONDS=1
URL GOTO={{!COL1}}
WAIT SECONDS=2

La totale : WP + les plugins

VERSION BUILD=7300701 RECORDER=FX
TAB T=1
' Ici vaut mieux décommenter la ligne ci-dessous car parfois les plugins et/ou les thèmes sont à jour.
SET !ERRORIGNORE YES

' Chemin où se trouve votre fichier source (= liste des blogs)
CMDLINE !DATASOURCE C:\Users\Bertiranozor\Documents\iMacros\blogs_update_wp.csv
' Structure du fichier : "http://www.example.com/","admin","mot de passe" (un WP par ligne)
' "mot de passe" est facultatif, ça dépend de si vous sauvegardez ou non vos MDP dans Firefox. Si ce  n'est pas le cas, décommentez la ligne qui suit puis commentez celle d'après :
'SET !DATASOURCE_COLUMNS 3
SET !DATASOURCE_COLUMNS 2
SET !DATASOURCE_LINE {{!LOOP}}
 
' Des fois ça prend vachement de temps so...
SET !TIMEOUT 180
' Mais on ne veut pas non plus qu'il passe 18 secondes à chercher un tag introuvable, 2 suffiront :
SET !TIMEOUT_STEP 2
 
URL GOTO={{!COL1}}wp-login.php
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:loginform ATTR=ID:user_login CONTENT={{!COL2}}
SET !ENCRYPTION NO
'Décommentez la ligne qui suit si z'avez une 3ème colonne avec vos MDP.
'TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:loginform ATTR=ID:user_pass CONTENT={{!COL3}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:loginform ATTR=ID:wp-submit
URL GOTO={{!COL1}}wp-admin/plugins.php?plugin_status=all
TAG POS=2 TYPE=INPUT:CHECKBOX FORM=NAME:NoFormName ATTR=* CONTENT=YES
' On désactive tous les plugins
TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=NAME:action CONTENT=%deactivate-selected
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=ID:doaction
URL GOTO={{!COL1}}wp-admin/update-core.php
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:upgrade ATTR=ID:upgrade
URL GOTO={{!COL1}}wp-admin/plugins.php
' On réactive que les plugins récemment désactivés
URL GOTO={{!COL1}}wp-admin/plugins.php?plugin_status=recently_activated
TAG POS=2 TYPE=INPUT:CHECKBOX FORM=NAME:NoFormName ATTR=* CONTENT=YES
TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=NAME:action CONTENT=%activate-selected
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=ID:doaction
WAIT SECONDS=2

' On passe à la mise à jour des plugins
URL GOTO={{!COL1}}wp-admin/plugins.php?plugin_status=upgrade
TAG POS=2 TYPE=INPUT:CHECKBOX FORM=NAME:NoFormName ATTR=* CONTENT=YES
TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=NAME:action CONTENT=%update-selected
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=ID:doaction
URL GOTO={{!COL1}}wp-admin/plugins.php
WAIT SECONDS=1
URL GOTO={{!COL1}}wp-admin/update-core.php
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=NAME:upgrade-themes ATTR=ID:themes-select-all CONTENT=YES
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:upgrade-themes ATTR=ID:upgrade-themes
'Le temps de vérifier que tout s'est bien passé, vous pouvez commenter les 3 lignes qui suivent si vous êtes un cow-boy.
WAIT SECONDS=1
URL GOTO={{!COL1}}
WAIT SECONDS=2
  • A coupler à un fichier CSV intitulé blogs_update_wp.csv ici, avec :
"http://www.example.com/","admin","mot de passe"

Un par ligne, n’oubliez pas le slash de fin à l’URL de votre WP.

  • A lancer via le bouton Jouer (répéter), en indiquant le nombre de blogs que vous souhaitez mettre à jour (= le nombre de lignes de votre fichier csv).
  • Faire Pause voire Arrêter si vous constatez un bug sur l’un de vos WordPress.

Remarques annexes :

  • Cette macro est compatible avec tous les langues de WP, vu qu’elle raisonne en URL de fichiers, et non en noms des tags/boutons/…
  • Il est important que vous vérifiez visuellement que la mise à jour de chacun de vos blogs se déroule parfaitement bien, car on n’est jamais à l’abri d’un plantage lors de cette étape cruciale (avec ou sans iMacros, qui ne fait que reproduire vos actions manuelles).

7 commentaires

  • Daniel Roch 13 décembre 2011 Reply

    J’avoue que j’ai toujours eu envie d’avoir un tel script pour mettre à jour tous mes blogs.

    Mais quand je vois les incompatibilités de certains plugins et de certains thèmes avec des versions plus récentes de WordPress, j’hésite un peu avant d’appuyer sur un gros bouton « nuclear update for all blogs »… ^^

  • Vincent from Jambonbuzz 13 décembre 2011 Reply

    Bonjour,

    Intéressante cette macro. Pourrais-tu me donner ton fichier csv avec sites, login et mdp via mon mail stp ?
    Je serais intéressé d’avoir un exemple, pour apprendre bien sûr 😛

    Quoi non ?!

  • Gwen 13 décembre 2011 Reply

    J’hésite toujours avant d’appuyer sur un bouton de la mort. A chaque fois que j’ai fais une mise à jour automatique c’est toujours la même chose : BUG DE LA MORT QUI TUE. Du coup j’attends d’avoir un peu de temps devant moi pour mettre à jour manuellement

  • Bertrand 14 décembre 2011 Reply

    @Daniel @Gwen : Je le rappelle, vous ne risquez rien de plus avec cette macro.

    Si vous rencontrez un hic, il vous suffit d’opter pour la mise à jour « manuelle », via votre logiciel FTP favori.

    @Vincent : As-tu bien reçu mon mail avec tous mes logins et mots de passe ?

  • alban from agence web en vendée 16 décembre 2011 Reply

    Whououuuu !! Berti tu déchires 🙂
    Je teste ça dès que je retrouve tous mes identifiants et mots de passe 🙂

  • Léo 16 décembre 2011 Reply

    Salut Bertrand ! C’est dommage que je ne découvre ton article que maintenant… J’ai passé une partie de ma soirée à créer pratiquement la même macro hier nuit. #VDM

    Tout n’est pas perdu, je vais prendre 2 lignes mieux optimisées que sur ma macro 😉

  • BoiteAWeb 28 février 2012 Reply

    Bonjour,
    Le souci est que parfois un plugin peut poser problème, au pire, on remets l’ancienne version et ça passe.
    Mais après avoir mis à jour X plugins, lequel fait foirer ?
    Quand on les fait 1 par 1, on sait de suite si ça passe ou pas.
    Sinon, pour la forme, la macro est un truc de fou xD Bravo.

Laisser un commentaire

VotreNom@VosKeywords est actif (mais nofollow, ne vous emballez pas !)