Como desativar a desativação do plugin do painel de administração do WordPress

Uma das melhores partes sobre o WordPress é a disponibilidade de plugins que facilita seu trabalho como usuário e como desenvolvedor. Muitas vezes, ao criar sites para clientes, nós, como desenvolvedores, utilizamos plugins absolutamente cruciais para que o site tenha determinadas funcionalidades. Recentemente, encontramos um problema em que um dos sites do nosso cliente estava quebrado. A barra lateral não estava sendo carregada completamente, faltavam elementos na página de publicação única que os assustou. A linha inferior desta história foi que um dos seus novos membros da equipe que era novo no WordPress desativou alguns dos plugins necessários para que o site funcione corretamente. Nós fomos e ativamos todos os plugins que foram desativados, mas teve que haver algo feito para que possamos evitar esse problema no futuro. Neste artigo, mostraremos como desabilitar a desativação do plugin do WordPress Admin Panel (somente para plugins específicos).

Teoricamente, você deve poder usar o plugin de membros do Justin Tadlock e criar um novo papel para os usuários. No entanto, o cliente que tivemos não queria ir esta rota. É uma pequena empresa, e eles contrataram esse novo funcionário para lidar com suas mídias sociais e blog, então não podemos restringir o acesso. Eles queriam dar-lhe a habilidade de ativar / desativar plugins a sua vontade. Tínhamos que encontrar uma maneira de manter nosso cliente feliz, e também precisávamos encontrar uma maneira de evitar que essa questão acontecesse no futuro. Felizmente para Steve Taylor, encontramos um trecho que permite remover o link “Desativar” dos plugins especificados. Ele também remove o link Editar para todos os plugins porque não queríamos que nosso cliente editasse todos os plugins através do editor.

Então, tudo o que você precisa fazer é colar os seguintes códigos no arquivo functions.php do seu tema:

add_filter ('plugin_action_links', 'disable_plugin_deactivation', 10, 4);
 função disable_plugin_deactivation ($ actions, $ plugin_file, $ plugin_data, $ context) {
 // Remover o link de edição para todos
 se (array_key_exists ('edit', $ actions))
 unset ($ actions ['edit']);
 // Remover o link desativar para plugins cruciais
 se (array_key_exists ('desativar', $ actions) && in_array ($ plugin_file, array (
 'facebook-open-graph-meta-in-wordpress / fbogmeta.php',
 'wp-pagenavi / wp-pagenavi.php'
 )))
 unset ($ actions ['desactivate']);
 retornar $ ações;
 } 

Agora, você precisa alterar a matriz de $ plugin_file onde você vê a lista de plugins especificados. O caminho do arquivo é relativo ao / wp-content / plugins /. Então, no exemplo acima, “facebook-open-graph-meta-in-wordpress / fbogmeta.php” é um arquivo localizado na pasta facebook-open-graph-meta-in-wordpress que está localizado dentro da pasta de plugins. Você pode alterar a lista para adicionar tantos plugins quanto desejar.

Este truque é um atalho, e na verdade não previne a desativação real. Tudo o que estamos fazendo é esconder o link Desativar. Qualquer pessoa com um pouco de conhecimento do WordPress pode gerar um URL de desativação e executá-lo. Mas se o seu cliente é bastante esperto para fazer isso, eles já sabem o que é o FTP, e eles simplesmente podem excluir os plugins dessa forma.

Você está trabalhando em um tema que exige absolutamente um plugin específico para que ele funcione corretamente? Então não esqueça de soltar o código acima.