A veces —tras instalar o actualizar un plugin— WordPress deja de funcionar. Aparece toda la pantalla en blanco y sin ningún mensaje de error. El problema se agrava cuando te das cuenta que tampoco puedes entrar al escritorio para desactivar ese plugin que sabes ha provocado el problema y así arreglar el sitio.
Las causas pueden son variadas, aunque las más comunes son:
- Errores de programación en el propio plugin.
- Utilizas una versión de PHP inferior a la que necesita el plugin.
- Falta un módulo de PHP que es imprescindible para el funcionamiento de un plugin.
En este artículo te voy a enseñar 2 técnicas que conocen muy bien los administradores de sitios WordPress y que sirven para desactivar plugins cuando no tienen acceso al escritorio:
1 - Desactivar plugins usando el acceso FTP
2 - Desactivar plugins por base de datos (MySQL)
Desactivar plugins por FTP
Te servirá cuando tengas acceso a un Administrador de archivos
o un acceso por FTP. Una vez te encuentres dentro de la carpeta del sitio, sigue estos pasos:
1 - Navega hasta la carpeta /wp-content
.
2 - Renombra la carpeta plugins
por plugins.desactivado
.
WordPress detectará que la carpeta no existe y desactivará todos los plugins automáticamente en la base de datos.
De igual modo, puedes desactivar un solo plugin entrando a la carpeta plugins y renombrando la carpeta del plugin concreto.
Cómo reactivar los plugins
Y para reactivar un plugin basta con renombrar la carpeta con el nombre original. Luego es necesario entrar al escritorio y activar manualmente cada plugin que se desactivó.
Desactivar plugins por base de datos
También, es posible activar y desactivar plugins ejecutando consultas en la base de datos.
Esta técnica la usamos los programadores y administradores para automatizar tareas y no te la aconsejo a menos que comprendas bien su funcionamiento.
NOTA Las modificaciones en la base de datos son peligrosas, antes de hacer cambios haz siempre una copia de seguridad.
Qué ventaja tiene sobre desactivar por FTP
Recuerda que WordPress desactiva en base de datos los plugins cuya carpeta no existe. Por eso, al reactivar plugins por FTP es fácil olvidar reactivarlos en el escritorio. Es un error común en administradores inexpertos que hacen una prueba y dejan desactivados sin querer todos los plugin del sitio.
Sin embargo, desactivar plugins en la base de datos sigue el mismo proceso que realiza WordPress, pero sin ejecutar los hooks de desactivación o activación. Por eso, esta técnica es útil para realizar tareas automáticas.
En cualquier caso, para resolver problemas puntuales te recomiendo desactivar los plugins por FTP por su sencillez.
Para entener bien esta técnica, en primer lugar, te explicaré como gestiona WordPress la activación y desactivación de los plugins:Cómo almacena WordPress la configuración de los plugins activos
WordPress almacena un listado con todos los plugins activos en la base de datos, dentro de la tabla wp_options
, en el registro active_plugins
.
Para obtener el listado completo de los plugins activos realiza esta consulta en phpMyAdmin:
SELECT option_value FROM wp_options WHERE option_name='active_plugins';
El resultado será parecido a este:
a:3:{i:1;s:27:"adapta-rgpd/adapta-rgpd.php";i:2;s:31:"control-horas/control-horas.php";i:3;s:25:"superadmin/superadmin.php";}
Se trata de un array serializado. Los programadores creamos arrays serializados para almacenar objetos PHP en la base de datos sin perder su tipo (en este caso es un array con un listado de plugins activos).
Y nos ayudamos de las funciones de PHP serialize
y unserialize
que transforman los objetos en cadenas que se pueden almacenar y recuperar en la base de datos.
Aquí puedes ver un ejemplo en el que serializo un array de igual modo que hace WordPress:
<?php
// Defino un array que contiene un listado de plugins.
$a= ["adapta-rgpd/adapta-rgpd.php", "control-horas/control-horas.php", "superadmin/superadmin.php"];
// Muestro el array serializado.
print_r(serialize($a));
// resultado: a:3:{i:0;s:27:"adapta-rgpd/adapta...
Así, modificando el contenido del array serializado es posible activar o desactivar uno o varios plugin.
Cómo desactivar todos los plugins
Para desactivar todos los plugins hay que almacenar un array vacío de forma serializada —que corresponde a la cadena a:0:{}
—.
Esta es la consulta SQL que tendrás que ejecutar en phpMyAdmin:
UPDATE wp_options SET option_value = 'a:0:{}' WHERE wp_options.option_name = 'active_plugins';
Antes de modificar el valor haz una copia del contenido para poder volver a la configuración anterior si lo necesitases.
Te he explicado varias formas de desactivar los plugins en WordPress. Te será útil cuando un plugin esté provocando problemas en tu WordPress, pantallazos en blanco o no puedas entrar en el Escritorio.
¿Te ha gustado? Mándame ánimos con un comentario. ¡Gracias!
Mabel.