В процессе работы с WordPress на сайте может накопиться значительное количество виджетов, которые не используются и только загромождают административную панель. Это негативно сказывается на удобстве управления сайтом и может привести к конфликтам при обновлении или установке новых плагинов. В этой статье мы подробно разберем, как удалить избыточные виджеты в WordPress как вручную, так и с помощью кода, а также рассмотрим несколько плагинов, упрощающих эту задачу.
Почему важно удалять избыточные виджеты в WordPress
Избыточные виджеты — это те, которые не используются на сайте, но остаются в списке доступных в админке. Их удаление полезно по нескольким причинам:
- Упрощение интерфейса. Меньше виджетов — проще найти нужный и настроить сайт;
- Повышение производительности. Некоторые виджеты могут загружать лишний код, даже если не используются, что замедляет сайт;
- Безопасность. Старая и неиспользуемая функциональность может содержать уязвимости;
- Избежание конфликтов. Меньше расширений — меньше шансов конфликтов между виджетами и плагинами.
Поэтому регулярное удаление ненужных виджетов — это хорошая практика для каждого разработчика и администратора сайта.
Как удалить виджеты в WordPress — стандартные способы
Первое, что приходит в голову — это просто удалить виджет из используемой области (sidebar или footer). Но это не удаляет сам виджет из списка доступных в админке. Чтобы полностью удалить виджет, нужно действовать иначе.
В админке WordPress нет стандартного интерфейса для полного удаления виджетов, так как они зарегистрированы в коде темы или плагина. Поэтому для удаления избыточных виджетов нужно использовать кодовые решения или плагины.
Удаление виджетов с помощью кода в functions.php
Самый надежный способ — отписаться от регистрации ненужных виджетов в файле functions.php вашей темы или в подключаемом плагине. Для этого используйте функцию unregister_widget(). Пример:
function wpaction_unregister_widgets() {
unregister_widget('WP_Widget_Calendar'); // Удаляет календарь
unregister_widget('WP_Widget_Archives'); // Удаляет архивы
unregister_widget('WP_Widget_Meta'); // Удаляет мета-блок
}
add_action('widgets_init', 'wpaction_unregister_widgets', 11);
Здесь мы удаляем три стандартных виджета WordPress: Календарь, Архивы и Мета. Параметры функции — это имена классов виджетов. Чтобы узнать класс виджета, можно посмотреть в исходниках плагина или темы, где он объявлен.
Как определить класс виджета для удаления
Иногда сложно сразу понять, как называется класс виджета. Для этого можно воспользоваться несколькими способами:
- Посмотреть исходный код плагина или темы — обычно класс виджета наследует
WP_Widgetи имеет имя, например,WP_Widget_Recent_Posts; - Использовать отладочный код для вывода всех зарегистрированных виджетов:
function wpaction_list_registered_widgets() {
global $wp_widget_factory;
echo '<pre>';
print_r($wp_widget_factory->widgets);
echo '</pre>';
}
add_action('admin_notices', 'wpaction_list_registered_widgets');
Этот код выведет список всех зарегистрированных виджетов в админке, чтобы вы могли увидеть имена классов и выбрать, какие удалять.
Плагины для удаления и управления виджетами
Если вы не хотите писать код, есть несколько плагинов, которые помогают управлять виджетами и удалять ненужные:
- Widget Disable — плагин, который позволяет отключать виджеты для определенных страниц, ролей пользователей и условий;
- Widget Options — расширенный контроль над виджетами, включая возможность скрывать их;
- Clearfy Pro — плагин для оптимизации WordPress, который позволяет отключать ненужные виджеты и модули.
Выбирайте плагин исходя из ваших задач — для полного удаления из ядра лучше использовать код, а для временного отключения — плагины.
Как создать собственную функцию для массового удаления виджетов
Если на сайте много плагинов с виджетами, можно написать функцию, которая удалит целый список неиспользуемых виджетов одним вызовом:
function wpaction_unregister_many_widgets() {
$widgets_to_remove = [
'WP_Widget_Calendar',
'WP_Widget_Archives',
'WP_Widget_Meta',
'WP_Widget_Search',
'WP_Widget_Tag_Cloud',
'Custom_Plugin_Widget_Class', // пример кастомного виджета
];
foreach ($widgets_to_remove as $widget_class) {
unregister_widget($widget_class);
}
}
add_action('widgets_init', 'wpaction_unregister_many_widgets', 11);
Такой подход позволяет централизованно управлять удалением и не засорять functions.php множеством отдельных вызовов.
Выводы и рекомендации
Удаление избыточных виджетов — важный этап оптимизации и упрощения управления сайтом на WordPress. Рекомендуется:
- Всегда проверять влияние удаления на отображение сайта;
- Использовать отладочные инструменты для определения классов виджетов;
- Отдавать предпочтение коду для удаления, если нужно постоянное решение;
- Применять плагины для временного отключения или условного управления виджетами;
- Оптимизировать сайт комплексно, включая удаление неиспользуемых виджетов и скриптов.
Для тех, кто пользуется плагином Clearfy Pro, доступна удобная опция отключения стандартных и сторонних виджетов без кода, что значительно ускоряет работу с сайтом.