Hay veces que se notifica una vulnerabilidad en un plugin de WordPress y es muy recomendable ponerlo en cuarentena: eliminarlo, o al menos desactivarlo, hasta que se solucione el problema. Cuando esto ocurre en una instalación Multisite de WordPress con decenas o centenas de sitios antes de poder desactivarlo o eliminarlo conviene saber en qué sitios está activo.
Con wp-cli y un loop de bash se puede realizar esta tarea automáticamente. El código empaquetado en un pequeño script es el siguiente:
#!/bin/bash for site in $(wp site list --field=url); do echo "Comprobando sitio: $site" if wp plugin is-active $1 --url=$site; then echo "El plugin está activo en el sitio $site" fi done |
El script tiene un parámetro para el identificador del plugin. Por ejemplo, si llamamos al script wp.is.plugin.active.sh
y si se quiere saber en qué sitios está activo Akismet:
wp.is.plugin.active.sh akismet |
Para conocer el identificador de un plugin se puede usar también wp-cli para listar todos los plugins instalados:
wp plugin list |