Как запретить деактивацию плагинов в админке?
Иногда на сайте бывают установлены плагины, без которых работа сайта будет полностью нарушена. В таких случаях стоит заранее обеспокоиться ситуацией, когда такие плагины могут быть деактивированы и удалены по ошибке (скажем, если на сайте несколько администраторов и не все из них понимают, что и как работает на сайте). От физического удаления файлов через FTP можно защититься простой сменой прав доступа, а вот в админке можно поступить немного по-другому - банально удалить ссылки "Деактивировать" и "Изменить" со страницы плагинов.
Добавьте в файл functions.php вашей темы следующий код:
//удаляем кнопки изменить и деактивировать у плагинов start function wph_banplug($actions, $plugin_file, $plugin_data, $context) { if (array_key_exists('edit', $actions)) unset($actions['edit']); if (array_key_exists('deactivate', $actions) && in_array($plugin_file, array( 'cyr2lat/cyr-to-lat.php', 'bbspoiler/bbspoiler.php' ))) unset($actions['deactivate']); return $actions; } add_filter('plugin_action_links', 'wph_banplug', 10, 4); //удаляем кнопки изменить и деактивировать у плагинов end |
Для указанных в коде сниппета плагинов (надо указать папку плагина и его главный файл) соответствующие ссылки со страницы плагинов будут удалены.
Хотелось бы отметить, что хотя ссылка "Изменить" и пропадет, но возможность редактирования файлов плагинов через меню "Плагины\Редактор" останется. Поэтому вам стоит еще воспользоваться сниппетом, которым отключит редактор плагинов и тем в админке сайта (это полезно сделать в любом случае).
Данный сниппет потребовался мне на реальном клиентском сайте, где заказчик умудрился удалить несколько необходимых для работы сайта плагинов. Если вы один единственный администратор на своем сайте, то, конечно, данный сниппет вам совершенно не нужен (вы же не враг сами себе?).
Если какие-то из ваших плагинов не должны обновляться (например, если новые версии не содержат нужного функционала или не работают с вашей версией движка или темы), то воспользуйтесь сниппетом запрета обновления плагинов.