Cómo ocultar plugins de la lista en WordPress

Es posible que queramos ocultar de la lista de plugins, algún plugin determinado. Por ejemplo, para que el cliente o alguien con acceso a ese apartado no vea que está instalado.

Justo esto es lo que me ha pasado. No quería que el cliente viese un plugin que tenía instalado para generarle los CPTs. No por ocultárselo, si no por manazas… Es muy enreda y seguro que acabará tocando donde no sabe. También podía haberlo añadido a la carpeta de mu-plugins, pero aun así seguro que tendría que explicarle cada X meses de qué va la cosa. Por muy clarito que quede en la descripción.

También, podrías ocultar algún plugin que tienes desactivado temporalmente y evitar que alguien lo borre. Si no lo vas a volver a utilizar, por seguridad, es recomendable quitar aquellos plugins que no estén activos. Pero en ocasiones lo desactivamos temporalmente, por alguna incompatibilidad por alguna auditoría.

Código para ocultar plugins activos de la lista de WordPress

Este sería el código para el plugin Hello Dolly que viene incluido en todas las instalaciones de WordPress

add_filter( 'all_plugins', 'ocultar_hello_dolly');
function ocultar_hello_dolly($plugins) {
  // Ocultamos el plugin Hello Dolly
  if(is_plugin_active('hello.php')) {
    unset( $plugins['hello.php'] );
  }
}

Este código hay que adaptarlo a cada plugin. es decir tenemos que indicar dónde está el archivo principal del plugin que queremos ocultar. Te dejo varios ejemplos para que puedas descubrir el patrón y así adaptarlo a tus necesidades:

function ocultar_plugins($plugins) {
  // Ocultamos el plugin RankMath
  if(is_plugin_active('seo-by-rank-math/rank-math.php')) {
    unset( $plugins['seo-by-rank-math/rank-math.php'] );
  } return $plugins;
  // Ocultamos el plugin Elementor
  if(is_plugin_active('elementor/elementor.php')) {
    unset( $plugins['elementor/elementor.php'] );
  } return $plugins;
}
add_filter( 'all_plugins', 'ocultar_plugins');

Si te fijas, el patrón es muy simple. Debemos indicar la ruta del archivo principal.

Ocultar plugins no activos en WordPress

También podemos ocultar plugins que no estén activos. Para ello solo hay que negar la función is_plugin_active mediante una admiración.

Por simplificar el ejemplo volvemos con Hello Dolly, pero es igualmente adaptable como hemos visto anteriormente:

add_filter( 'all_plugins', 'ocultar_hello_dolly_desactivado');
function ocultar_hello_dolly_desactivado($plugins) {
  // Ocultamos el plugin Hello Dolly
  if(!is_plugin_active('hello.php')) {
    unset( $plugins['hello.php'] );
  }
}

Recuerda que los archivos del pluigin seguirán estando en el servidor, por lo que podrían causar problemas de seguridad si no se mantienen actualizados.

No me responsabilizo del uso de este código y sus resultados. Si no sabes lo que estás haciendo, no lo hagas. Y si haces algo, ten preparada una copia de seguridad y aprende a utilizarlas. ¡Suerte!