Una de las principales ventajas de WordPress es la gran cantidad de plugins disponibles. Hay para todas las necesidades y caprichos, de todos los colores y formas que uno se pueda imaginar… y si no existe, no es complicado crear uno. Instalarlos también es extremadamente sencillo: copiar los archivos y luego dos clicks desde la interfaz de administración. ¿Pero qué pasa cuando no los queremos más?
Desde la interfaz de administración se pueden desactivar y activar los plugins disponibles en nuestra instalación. Para “desinstalarlos” hay que borrar los archivos que se copiaron. Sin embargo, la mayoría de los scripts hacen modificaciones a la base de datos sobre la que funciona WordPress al activarlos por primera vez.
Jeff nos hace notar, sin embargo, que al desactivar un plugin no se deshacen esos cambios, simplemente se dejan de utilizar; de la misma forma cuando uno borra los archivos. Y uno termina con una base de datos con un montón de información que no utiliza y pero que abulta y ocupa espacio y posiblemente multiplica las chances de que las actualizaciones causen problemas.
Por suerte, en respuesta a la discusión iniciada por Jeff, Andrew Rickman creó un plugin que agrega una opción para desinstalar plugins. Éste se encarga de llamar al script de desinstalación de un plugin si éste existe. Obviamente, el plugin tiene que tener un script de desinstalación en primer lugar.
Lamentablemente, el plugin de Andrew no es muy “limpio” que digamos. Y siendo ésto una funcionalidad referida a la administración de plugins es algo que debería de estar en WordPress mismo y no ser un plugin. Por eso, ya se abrió un pedido al respecto a los desarrolladores de WordPress y fue algo tan obvio que ni se discutió si era necesario o no, sólo se está discutiendo cómo implementarlo.
Por ahora la idea es la siguiente (traducida a lenguaje lo menos técnico posible):
- Al instalar el plugin, éste hace lo que tenga que hacer
- Entre las cosas que “tiene que hacer” al instalarse, define el código necesario para desinstalarse
- Si el plugin no está activo, la interfaz de administración mostrará un link para desinstalarlo
- Al hacer click en dicho link, se ejecuta el código necesario
- Si el código no falló, se elimina el código para desinstalar el plugin (y con él el link para desinstalarlo)
Yo creo que es una excelente idea pero tiene una gran desventaja: hay que modificar todos los plugins existentes. Obviamente esta última desventaja no creo que se pueda salvar; pero si la iniciativa prospera va a haber que tener cuidado al instalar plugins o simplemente vamos a tener que conformarnos con la situación actual.
Viendo que nadie se quejó antes ¿estamos agrandando un problema menor? Mucha gente ahora vive sin tener que preocuparse por si los plugins se desinstalan bien o mal y es felíz. Escucho opiniones; además si creen que existe una mejor forma de hacer todo eso, me ofrezco a traducirlas al inglés y agregarlas al pedido oficial.