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.