Una de las mejores partes de WordPress es la disponibilidad de complementos que hacen que su trabajo sea fácil como usuario y como desarrollador. A menudo, cuando creamos sitios para clientes, nosotros como desarrolladores usamos complementos que son absolutamente cruciales para que el sitio tenga ciertas funcionalidades. Recientemente, nos encontramos con un problema donde se rompió uno de los sitios de nuestro cliente. La barra lateral no se cargó por completo, faltaron elementos en la página de publicación única que los asustó. La conclusión de esta historia es que uno de los nuevos miembros del personal que era nuevo en WordPress desactivó algunos de los complementos necesarios para que el sitio funcione correctamente. Entramos y activamos todos los complementos que fueron desactivados, pero teníamos que hacer algo para evitar este problema en el futuro. En este artículo, le mostraremos cómo desactivar la desactivación de complementos desde el Panel de administración de WordPress (solo para complementos específicos).

Teóricamente, debería poder usar el complemento de Miembros de Justin Tadlock y crear un nuevo rol para los usuarios. Sin embargo, el cliente que teníamos no quería ir por esta ruta. Es una pequeña empresa, y contrataron a este nuevo empleado para tratar con sus redes sociales y su blog, por lo que no podemos restringir el acceso. Querían darle la capacidad de activar / desactivar plugins a su voluntad. Debíamos encontrar una manera de mantener feliz a nuestro cliente, y también teníamos que encontrar la forma de evitar que esto ocurriera en el futuro. Afortunadamente para Steve Taylor, encontramos un fragmento que le permite eliminar el enlace «Desactivar» de los complementos especificados. También elimina el enlace Editar para todos los complementos porque no queríamos que nuestro cliente editara ningún complemento a través del editor.

Entonces, todo lo que tiene que hacer es pegar los siguientes códigos en el archivo functions.php de su tema:

add_filter ('plugin_action_links', 'disable_plugin_deactivation', 10, 4);
 función disable_plugin_deactivation ($ actions, $ plugin_file, $ plugin_data, $ context) {
 // Eliminar el enlace de edición para todos
 if (array_key_exists ('editar', $ acciones))
 unset ($ actions ['edit']);
 // Eliminar el enlace de desactivación para complementos cruciales
 if (array_key_exists ('deactivate', $ actions) && in_array ($ plugin_file, array (
 'facebook-open-graph-meta-in-wordpress / fbogmeta.php',
 'wp-pagenavi / wp-pagenavi.php'
 )))
 unset ($ actions ['deactivate']);
 devolver $ acciones;
 } 

Ahora, debe cambiar la matriz de $ plugin_file donde vea la lista de complementos especificados. La ruta del archivo es relativa a / wp-content / plugins /. Entonces, en el ejemplo anterior, ‘facebook-open-graph-meta-in-wordpress / fbogmeta.php’ es un archivo ubicado en la carpeta facebook-open-graph-meta-in-wordpress que se encuentra dentro de la carpeta de complementos. Puede cambiar la lista para agregar tantos complementos como desee.

Este truco es un atajo, y en realidad no evita la desactivación real. Todo lo que hacemos es ocultar el enlace Desactivar. Cualquier persona con un poco de conocimiento de WordPress puede generar una URL de desactivación y ejecutarla. Pero si su cliente es lo suficientemente astuto como para hacer eso, entonces ya saben lo que es el FTP, y simplemente pueden eliminar los complementos de esa manera.

¿Estás trabajando en un tema que requiere absolutamente un complemento específico para que funcione correctamente? Entonces no te olvides de soltar el código de arriba.