En sitios de gran volumen hay que ser fino a la hora del control de la carga de recursos, procurando evitar la activación de todo aquello que no sea necesario en una situación, página, ubicación particular.
Mediante la carga selectiva de plugins podemos optimizar al máximo el consumo de recursos de nuestra web, consiguiendo de este modo un funcionamiento óptimo e incluso un ahorro en costes de hosting.
En esta ocasión vamos a plantear la situación en la que queremos que para los usuarios que estén conectados a nuestro sitio, desde administradores a clientes, se desactiven ciertos plugins que no tendrían utilidad alguna para ellos, al ser plugins con funcionalidades orientadas a usuarios no conectados a la web, como por ejemplo plugins de suscripción, ventanas emergentes o cualquier otro que se te ocurra.
La idea es evitar que esos plugins que no tienen utilidad para el usuario conectado, no consuman recursos, se desactiven para usuarios conectados.
El código que debes añadir es el siguiente:
/* Plugins que no se cargan para usuarios conectados */ add_filter( 'option_active_plugins', 'desactivar_plugins_usuarios_conectados' ); function desactivar_plugins_usuarios_conectados( $plugins ) { // El gancho 'option_active_plugins' se lanza antes de que se genere info de usuario // por lo que hay que cargar pronto este archivo require (ABSPATH . WPINC . '/pluggable.php'); // Si estamos conectados pero no en el area de admin de WP if ( is_user_logged_in() & !is_admin() ) { // Usa el slug de la carpeta del plugin y el nombre de su archivo php principal // como en los siguientes ejemplos $plugins_not_needed = array ('woo-add-to-cart-popup/woo-add-to-cart-popup.php', 'hurry-timer/hurry-timer.php','wp-advanced-ads-manager/wp-advanced-ads-manager.php' ); foreach ( $plugins_not_needed as $plugin ) { $key = array_search( $plugin, $plugins ); if ( false !== $key ) { unset( $plugins[ $key ] ); } } } return $plugins; }
Añade el código como plugin independiente o plugin imprescindible (mejor), pues necesita cargarse pronto el código para saber qué plugins están activos o no, y comprueba si, efectivamente, están desactivados los plugins del array cuando estás conectado a la web, y activos cuando estás desconectado.
Por supuesto, los slugs de los plugins del código son de ejemplo, pon algunos reales que tengas instalados.
Otro día probamos otras posibles situaciones 😉
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Me parece muy interesante, gracias por la entrada. Lo único es que he intentado no cargar el plugin de accesibilidad y de cookies cuando estás logeado como admin (y accedas a las páginas), pero no me ha funcionado, porque los desactiva totalmente al entrar como admin, y ya no deja reactivarlos, incluso aunque se entre sin estar conectado, ya que deja el plugin desactivado la primera vez que entras como admin, pero ya no se activa… ¿alguna idea de como hacer esto?.
Lo que quiero es que los usuarios «normales» si que veas el banner de cookies y de accesibilidad, pero que cuando estás conectado como admin, pués que no los cargue para que no salga en las páginas.
Saludos y muchas gracias.