Los MU-Plugins (Must Use Plugins) en WordPress son plugins especiales que se cargan automáticamente y no pueden ser desactivados desde el panel de administración. Son ideales para funcionalidades críticas o personalizaciones que deben estar siempre activas.
¿Qué son los MU-Plugins?
- Se almacenan en la carpeta
/wp-content/mu-plugins/
. - Se activan automáticamente sin necesidad de activación manual.
- No pueden ser desactivados desde el panel de WordPress.
- Se cargan antes que los plugins normales.
- Solo se cargan archivos PHP ubicados directamente en la carpeta
mu-plugins
.
Cómo crear un MU-Plugin paso a paso
- Crear la carpeta
mu-plugins
En tu instalación WordPress, dentro dewp-content
, crea la carpetamu-plugins
si no existe. - Crear un archivo PHP para el MU-PluginCrea un archivo PHP con el código deseado, por ejemplo,
disable-updates.php
. - Agregar encabezado básico para el plugin
<?php
/*
Plugin Name: Disable Plugin Updates
Description: Desactiva actualizaciones automáticas y gestiona plugins desde código.
Version: 1.0
*/
4. Snippet para desactivar actualizaciones automáticas de plugins
add_filter('auto_update_plugin', '__return_false');
Esto desactiva las actualizaciones automáticas en todos los plugins.
5. Snippet para desactivar plugins específicos
add_action('admin_init', function() {
deactivate_plugins(['plugin-folder/plugin-file.php']);
});
Cambia 'plugin-folder/plugin-file.php'
por el identificador del plugin a desactivar.
6. Subir el archivo PHP a /wp-content/mu-plugins/
Usa FTP o el administrador de archivos de tu hosting para subir el archivo al directorio mu-plugins
.
Ventajas de los MU-Plugins
- Siempre activos sin posibilidad de desactivación accidental.
- Carga rápida y segura antes que los plugins normales.
- Centralizan funcionalidades críticas en un solo lugar.
- Evitan que actualizaciones automáticas afecten la personalización.
Consideraciones importantes
- Los MU-Plugins no se actualizan automáticamente; cualquier cambio o actualización debe hacerse manualmente.
- No permiten usar subcarpetas, por lo que si usas archivos separados debes crear un loader.
Aquí tienes un snippet listo para usar que puedes subir directamente:
<?php
/*
Plugin Name: Disable Plugin Updates and Control Plugin Activation
Description: Desactiva todas las actualizaciones automáticas de plugins y permite desactivar plugins específicos desde código.
Version: 1.0
*/
// Desactivar actualizaciones automáticas de plugins
add_filter('auto_update_plugin', '__return_false');
// Desactivar un plugin específico (ejemplo)
add_action('admin_init', function() {
deactivate_plugins(['akismet/akismet.php']); // Cambia por el slug correcto del plugin
});
Este tutorial es ideal para desarrolladores y administradores que desean mantener un control seguro y estable sobre su sitio WordPress, evitando actualizaciones inesperadas o plugins activos no deseados. Palabras clave para SEO incluyen «mu-plugins WordPress», «desactivar actualizaciones plugins WordPress», y «tutorial MU-Plugins».
Este filtro manipula la respuesta de las actualizaciones que WordPress recibe de la API oficial para mostrar notificaciones en el panel.
Snippet con site_transient_update_plugins
(el que bloquea notificaciones)
Opción: 1
/*
Plugin Name: Desactivar Actualización Plugin Específico
Description: Evita la actualización automática para un plugin específico.
*/
add_filter('site_transient_update_plugins', function ($value) {
if (isset($value) && is_object($value)) {
// bloquear actualización de un plugin específico
unset($value->response['akismet/akismet.php']); // Cambia por el slug correcto del plugin
}
return $value;
});
Opción: 2
<?php
/*
Plugin Name: Desactivar Actualización para Todos los Plugins
Description: Evita la actualización automática para todos los plugins.
*/
add_filter('site_transient_update_plugins', function ($value) {
if (isset($value) && is_object($value)) {
$value->response = []; // Elimina todas las notificaciones de actualización para todos los plugins
}
return $value;
});
- Tipo de control: Quita la notificación de actualización para plugins específicos o para todos los plugins si se descomenta la línea que vacía la respuesta.
- Ventaja: No solo detiene las actualizaciones automáticas, sino que también oculta cualquier advertencia o alerta que aparezcan en el panel cuando hay una nueva versión.
- Limitación: Es más “agresivo” porque engaña a WordPress para que piense que no hay actualizaciones disponibles, lo que puede hacer que el administrador no sepa que el plugin está desactualizado.
Resumen de diferencias
Característica | add_filter(‘auto_update_plugin’) | add_filter(‘site_transient_update_plugins’) |
---|---|---|
Bloquea actualizaciones automáticas | Sí | No directo, pero evita notificaciones |
Oculta alertas/notificaciones | No | Sí |
Control granular por plugin | Sí (con lógica más avanzada) | Sí (elimina plugins específicos de la actualización) |
Recomendado para | Controlar actualizaciones automáticas | Ocultar notificaciones de actualización |
¿Cuál usar y cuándo?
- Si solo quieres evitar que WordPress actualice automáticamente los plugins, usa
auto_update_plugin
. - Si quieres ocultar que haya actualizaciones, por ejemplo en sitios donde no quieres que administradores vean las advertencias, usa
site_transient_update_plugins
. - Ambos filtros se pueden combinar para un control completo, pero es importante no abusar, porque mantener plugins desactualizados es un riesgo de seguridad.
Esta explicación se basa en la documentación oficial de WordPress y buenas prácticas para controlar actualizaciones automáticas y notificaciones en plugins