В некоторых случаях требуется использовать плагины WordPress, которые не должны отображаться в списке установленных плагинов в админке. Это может быть необходимо для защиты уникального функционала, предотвращения случайного отключения или для скрытия важных настроек от посторонних пользователей. В этой статье мы рассмотрим, как создать и установить невидимый плагин в WordPress, а также приведём примеры кода и рекомендации по безопасности.
Что такое невидимый плагин WordPress и зачем он нужен
Невидимый плагин — это плагин, который корректно работает на сайте, но не отображается в стандартном списке плагинов в админке WordPress. Такой подход помогает:
- Скрыть важный функционал от администраторов с ограниченными правами или других пользователей;
- Предотвратить случайное отключение плагина, что может привести к сбоям на сайте;
- Защитить уникальные разработки и кастомные функции от копирования или изменения.
Однако важно понимать, что полностью спрятать плагин невозможно, так как любой пользователь с доступом к серверу или базе данных сможет обнаружить его. Задача — усложнить доступ к информации и снизить риски.
Способы скрытия плагина из списка WordPress
Существует несколько способов сделать плагин невидимым:
1. Изменение заголовков плагина
При создании плагина достаточно убрать или изменить стандартные заголовки в файле plugin-name.php, чтобы WordPress не распознавал его как стандартный плагин. Однако это не рекомендуется, так как плагин может не загрузиться.
2. Фильтрация вывода списка плагинов через хук all_plugins
Более надёжный способ — использовать фильтр all_plugins, который отвечает за список плагинов в админке. В вашем невидимом плагине добавьте специальный код, который будет исключать его из списка.
add_filter('all_plugins', 'wphide_filter_hide_plugin');
function wphide_filter_hide_plugin($plugins) {
foreach ($plugins as $plugin_file => $plugin_data) {
if ($plugin_file === plugin_basename(__FILE__)) {
unset($plugins[$plugin_file]);
}
}
return $plugins;
}Этот код проверяет имя текущего плагина и удаляет его из массива плагинов для отображения в админке.
3. Переименование папки и файлов
Для дополнительной маскировки можно использовать нестандартные имена папок и файлов плагина, которые не будут ассоциироваться с вашим функционалом. Например, назвать папку wp-cache-helper вместо wphide-plugin.
Создание простого невидимого плагина с примером кода
Давайте сделаем простой плагин, который выполняет полезную функцию (например, отключает эмодзи в WordPress), но при этом скрыт из списка плагинов.
<?php
/**
* Plugin Name: WPHide Invisible Emoji Disabler
* Description: Отключает эмодзи и скрыт из списка плагинов
* Version: 1.0
* Author: wphide.ru
*/
// Отключаем эмодзи
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
// Скрываем плагин из списка
add_filter('all_plugins', 'wphide_filter_hide_plugin');
function wphide_filter_hide_plugin($plugins) {
foreach ($plugins as $plugin_file => $plugin_data) {
if ($plugin_file === plugin_basename(__FILE__)) {
unset($plugins[$plugin_file]);
}
}
return $plugins;
}
?>Этот плагин полностью работает, отключая эмодзи, но не виден в списке плагинов, что снижает вероятность его случайного отключения.
Использование готовых плагинов для скрытия или защиты плагинов
Если вам нужен более продвинутый функционал, можно рассмотреть плагины, которые помогают скрывать плагины и темы, например:
- Plugin Visibility — позволяет скрывать плагины по ролям пользователей;
- Clearfy Pro — мощный плагин оптимизации и безопасности с опцией скрытия плагинов и тем;
- WPCommunity — содержит функции по управлению доступом и видимостью элементов админки.
Использование таких инструментов позволяет централизованно управлять безопасностью сайта и невидимостью важных компонентов.
Рекомендации по безопасности невидимых плагинов
Несмотря на то, что скрытие плагина усложняет его обнаружение, это не полноценная защита. Рекомендуется:
- Ограничить доступ к админке и серверу только доверенным лицам;
- Использовать сложные пароли и двухфакторную аутентификацию;
- Регулярно обновлять WordPress и все плагины;
- Резервировать сайт перед внесением изменений;
- Следить за логами безопасности и подозрительной активностью.
Только комплексный подход обеспечивает защиту уникального функционала и данных сайта.