В процессе работы с WordPress накапливается множество виджетов, которые не используются и могут замедлять работу сайта или создавать беспорядок в админке. Особенно это актуально для сайтов с множеством подключённых плагинов, которые регистрируют свои собственные виджеты, но вы их не используете. В этой статье подробно расскажу, как с помощью кода удалить неиспользуемые виджеты из списка доступных, чтобы очистить панель виджетов и улучшить производительность административной части.
Почему важно удалять неиспользуемые виджеты в WordPress
Неиспользуемые виджеты — это не просто визуальный мусор. Они загружаются системой, что увеличивает объем кода, который WordPress обрабатывает на странице редактирования. В некоторых случаях это может влиять на скорость загрузки админки и даже на безопасность, так как виджеты от старых или неактивных плагинов могут содержать уязвимости.
Удаление ненужных виджетов помогает:
- Сделать интерфейс админки более чистым и удобным;
- Уменьшить нагрузку на сервер при загрузке панели управления;
- Повысить безопасность, исключив потенциально уязвимые компоненты;
- Упростить обслуживание сайта и минимизировать конфликты между плагинами.
Теперь перейдём к конкретным решениям.
Как узнать, какие виджеты зарегистрированы в WordPress
Перед удалением полезно получить список всех зарегистрированных виджетов. Это помогает понять, какие из них не используются и подлежат удалению.
Добавьте следующий код в functions.php вашей темы или в отдельный плагин:
function wpset_list_registered_widgets() {
global $wp_widget_factory;
echo '<pre>';
print_r(array_keys($wp_widget_factory->widgets));
echo '</pre>';
}
add_action('admin_init', 'wpset_list_registered_widgets');После этого в админке в любом месте появится список всех классов виджетов, например:
Array
(
[0] => WP_Widget_Recent_Posts
[1] => WP_Widget_Categories
[2] => WP_Widget_Tag_Cloud
[3] => Plugin_Widget_Example
...
)
Имея список, можно выбирать те, которые хотите удалить.
Как удалить неиспользуемые виджеты с помощью кода
Удаление виджета — это отписка от регистрации класса виджета. Делается это с помощью функции unregister_widget(). Ниже показан пример, как удалить несколько виджетов.
function wpset_unregister_unused_widgets() {
unregister_widget('WP_Widget_Recent_Posts'); // Удаляет виджет "Последние записи"
unregister_widget('WP_Widget_Archives'); // Архивы
unregister_widget('Plugin_Widget_Example'); // Виджет из плагина
}
add_action('widgets_init', 'wpset_unregister_unused_widgets', 11);Обратите внимание на приоритет 11 — он позволяет функции выполниться после регистрации всех виджетов (обычно это 10), чтобы точно их удалить.
Если виджет зарегистрирован динамически или под другим именем, сначала найдите точное название класса через вывод списка виджетов (см. предыдущий раздел) и используйте его.
Удаление виджетов из популярных плагинов
Например, если вы используете плагин WPGPT, и в админке отображается виджет, который вы не используете, можно его отключить так же:
function wpset_unregister_wpgpt_widgets() {
unregister_widget('WPGPT_Widget_Chat');
}
add_action('widgets_init', 'wpset_unregister_wpgpt_widgets', 11);Замените WPGPT_Widget_Chat на нужный класс виджета.
Автоматизация удаления неиспользуемых виджетов
Если вы часто сталкиваетесь с задачей очистки виджетов после установки и удаления различных плагинов, можно создать более универсальную функцию, которая удаляет виджеты по списку, заданному в одном месте.
function wpset_unregister_multiple_widgets() {
$widgets_to_remove = [
'WP_Widget_Recent_Comments',
'WP_Widget_Meta',
'Some_Plugin_Widget',
];
foreach ($widgets_to_remove as $widget_class) {
unregister_widget($widget_class);
}
}
add_action('widgets_init', 'wpset_unregister_multiple_widgets', 11);Таким образом, вы централизуете управление и легко сможете добавлять или удалять виджеты из списка.
Советы по безопасности и производительности
Удаление виджетов — это не только косметическая мера. Рекомендуется регулярно проверять, какие виджеты остались после удаления плагинов, и при необходимости очищать их. Иногда старые виджеты могут пытаться загрузить ненужные скрипты и стили, что замедляет работу сайта.
Кроме того, если на сайте много виджетов, используйте плагин Clearfy Pro, который помогает комплексно оптимизировать WordPress и может отключать неиспользуемые виджеты и функционал без кода.
Резюме
Удаление неиспользуемых виджетов в WordPress — простой и эффективный способ сделать админку чище и поднять производительность. Используйте функции unregister_widget() с правильным приоритетом, определяйте названия виджетов через глобальный объект $wp_widget_factory и централизуйте удаление для удобства поддержки сайта.