Must-Use Plugins
Existe un segundo tipo de plugins, que no es tan popular como el que estuvimos viendo hasta ahora. Son plugins que no necesitan activación, y que van a estar siempre activos, siempre y cuando se encuentren en una ubicación específica de la instalación de WordPress.
Estamos hablando de los Must-Use Plugins, también conocidos como mu-plugins
. Al igual que los plugins comunes y corrientes, se trata de archivos PHP que van a estar incluidos en la carpeta wp-content/mu-plugins
. Esta carpeta no viene pre-creada en las instalaciones de WordPress, sino que tenemos que crearla a mano. Una vez que la tenemos, podemos empezar a incluir archivos PHP dentro de ella.
Los mu-plugins
tienen algunas diferencias con los plugins comunes, además de su ubicación. La primera diferencia notoria es que no necesitan un encabezado correctamente formateado para ser reconocidos como plugins. WordPress reconoce el encabezado cuando lo encuentra, pero no es un requisito obligatorio. Simplemente con tener un archivo con extensión PHP dentro del directorio wp-content/mu-plugins
, WordPress lo reconoce como plugin. Podemos ver la lista de mu-plugins
que tenemos instalados reflejada en la misma página de plugins de la sección de administración.
Otra diferencia importante es que los mu-plugins
no pueden estar en subcarpetas, como sí pueden los plugins comunes. Podemos usar archivos que estén en esas subcarpetas, pero necesitamos cargarlos con un include
o require
desde el archivo principal.
Debido a estas diferencias, no todos los plugins normales pueden funcionar como mu-plugins
, es decir que no siempre se va a dar el caso de que un plugin funcione correctamente si se lo mueve a la carpeta mu-plugins
y se incluye su archivo principal desde un mu-plugin
. Esto sucede porque los mu-plugins
están pensados para ser utilizados como archivos que introducen muy poca funcionalidad, con el fin de imponer algún tipo de comportamiento dentro del sitio que no pueda ser modificado o desactivado por nadie que no tenga acceso a los archivos. Es una práctica muy usada por desarrolladores que trabajan para usuarios finales, ya que les sirve para introducir procesos personalizados específicos de cada proyecto.