Habilitar o deshabilitar rápidamente todos los plugins de WordPress desde la base de datos

Habilitar o deshabilitar rápidamente todos los plugins de WordPress desde la base de datos

Cuando sufrimos el temido “pantallazo blanco de la muerte” de WordPress, podemos estar sufriendo, entre otros problemas, una incompatibilidad entre plugins o de un plugin en particular. No podemos acceder al panel de administración y necesitamos tratar de resolverlo cuanto antes. ¿Qué hacemos? Deshabilitar todos los plugins desde la base de datos. Veamos cómo hacerlo.

WordPress Plugins

Ésto puede ser también útil no sólo para problemas de pantallazos, sino para ahorrar tiempo en la habilitación o deshabilitación de plugins.

Veamos, lo primero que tenemos que hacer es acceder a nuestra base de datos. Con los datos de inicio de sesión que tiene WordPress almacenados internamente en “wp-config.php” podemos acceder usando un cliente como:

Una vez dentro de la base de datos de WordPress, nos dirigimos a la tabla de opciones, normalmente “wp_options” (puede cambiar el prefijo). Dentro de dicha tabla, hacemos una consulta para ver los plugins activos:

SELECT * FROM wp_options WHERE option_name = 'active_plugins';

El resultado será algo similar a esto:

a:20:{i:0;s:19:”akismet/akismet.php”;i:1;s:43:”all-in-one-seo-pack/all_in_one_seo_pack.php”;i:2;s:19:”anti-email-spam.php”;i:3;s:36:”contact-form-7/wp-contact-form-7.php”;i:4;s:28:”embed-iframe/embediframe.php”;i:5;s:32:”facepress-ii/FT-Facepress-II.php”;i:6;s:50:”google-analytics-for-wordpress/googleanalytics.php”;i:7;s:36:“google-sitemap-generator/sitemap.php”;i:8;s:21:”hgk-smtp/hgk-smtp.php”;i:9;s:24:”ic-besocial/besocial.php”;i:10;s:45:”limit-login-attempts/limit-login-attempts.php”;i:11;s:37:”shutter-reloaded/shutter-reloaded.php”;i:12;s:65:”subscribe-to-comments-reloaded/subscribe-to-comments-reloaded.php”;i:13;s:23:”wp-minify/wp-minify.php”;i:14;s:27:”wp-pagenavi/wp-pagenavi.php”;i:15;s:39:”wp-recentcomments/wp-recentcomments.php”;i:16;s:25:“wp-smushit/wp-smushit.php”;i:17;s:27:”wp-super-cache/wp-cache.php”;i:18;s:31:”wp-to-twitter/wp-to-twitter.php”;i:19;s:19:”wptouch/wptouch.php”;

Guardamos este resultado en un fichero de texto y lo conservamos (nos lo mandamos por correo o algo por si lo necesitamos restaurar). Ahora nos toca actualizar esta opción para deshabilitarlos todos en una sola instrucción, depende de la versión de WordPress que manejemos:

  • Si usamos WordPress 2.9 o superior (lo recomendable):
UPDATE wp_options
SET option_value = 'a:0:{}'
WHERE option_name = 'active_plugins';
  • Si usamos una versión anterior:
UPDATE wp_options
SET option_value = ''
WHERE option_name = 'active_plugins';

Para volver a habilitar los plugins deshabilitados, haríamos lo mismo pero dentro de SET  option_value = ‘aquí el contenido antiguo’ y todo volverá a estar como antes (esto es útil por ejemplo si estamos seguros de que el problema no es de los plugins).