Administration Wordpress

Lister l’emploi d’un thème ou d’une extension

Wordpress n’est pas conçu pour de la gestion en masse multisites. Bien que WPMU soit fonctionnel, il déploie une copie de la base de données Wordpress pour chaque site en suffixant les tables par un numéro de site. Cela rend impossible toute requête générique sur l’ensemble des configurations des sites par exemple.

Pour cela, on utilise le shell et des itérations hors Wordpress pour parcourir la base. Par exemple pour lister les thèmes :

read -s MYSQL_PASSWORD
alias mariadb="docker-compose exec db mariadb -u blogs -p$MYSQL_PASSWORD -A blogs -N"
for blog in $(mariadb -B -e 'select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_NAME like "wp_%_options" AND TABLE_SCHEMA="blogs";')
do
  echo $blog
  mariadb -e "select * from $blog where option_name='current_theme' or option_name='blogname';"
done
unalias mariadb

Obtenir la liste textuelle des extensions disponibles pour la mise à jour

Depuis la page des mises à jour de WordPress (Tableau de bord > Mises à jour), on peut copier les lignes suivantes dans la console javascript du navigateur :

{
  const names={plugins: "Extensions", themes: "Thèmes", translations: "Traductions"};
  let result="";
  
  const getUpgrades = (name) => {
    const elements = Array.from(document.querySelectorAll(`[name=\"upgrade-${name}\"] .plugin-title > p > strong`));
    if (!elements.length) {
    return "";
    };
    const textContent = elements.map(el => `- ${el.textContent}`).join('\n');
    return `${names[name]} :\n${textContent}\n`;
  };
  
  for (name in names) {
    result = result.concat(getUpgrades(name));
  };
    console.log(result);
}

Après validation, la fenêtre affiche la liste prête à être copiée pour une éventuelle annonce.