В WordPress по умолчанию установлено множество виджетов, которые не всегда нужны на вашем сайте. Избавление от ненужных виджетов помогает не только сохранить порядок в админке, но и улучшить производительность сайта. В этой статье подробно рассмотрим, как правильно удалять виджеты из WordPress, а также приведём примеры кода для решения этой задачи.
Почему стоит удалять ненужные виджеты в WordPress
Многие разработчики и владельцы сайтов не обращают внимания на количество активных и доступных виджетов в своей админ-панели. Однако, излишнее количество виджетов может привести к нескольким проблемам:
- Загромождение интерфейса. Пользователю или администратору становится сложнее ориентироваться в списке доступных виджетов.
- Повышенная нагрузка на сервер. Хотя сами по себе виджеты мало весят, некоторые из них подключают дополнительные скрипты и стили, что замедляет загрузку страниц.
- Безопасность. Чем больше кода и функциональности, тем выше риск появления уязвимостей.
Удаляя ненужные виджеты, вы делаете админку чище и облегчаете поддержку сайта.
Как узнать, какие виджеты можно удалить
Первым шагом стоит проанализировать, какие виджеты действительно используются на вашем сайте. Для этого:
- Перейдите в раздел Внешний вид > Виджеты и посмотрите, какие виджеты размещены в активных сайдбарах и других областях.
- Проверьте, подключают ли используемые виджеты дополнительные стили и скрипты, которые могут влиять на скорость загрузки.
- Если виджет не используется и не планируется — его можно удалить.
Важно не удалять виджеты, которые требуют темы или плагины, если они нужны для работы сайта.
Удаление виджетов с помощью кода в functions.php
Чтобы удалить ненужные виджеты, можно использовать функцию unregister_widget(). Вот пример, как это сделать в файле functions.php вашей темы или в собственном плагине:
function wpchecker_unregister_widgets() {
// Удаляем виджет календаря
unregister_widget('WP_Widget_Calendar');
// Удаляем виджет облака тегов
unregister_widget('WP_Widget_Tag_Cloud');
// Удаляем виджет мета
unregister_widget('WP_Widget_Meta');
}
add_action('widgets_init', 'wpchecker_unregister_widgets', 11);В этом коде мы отключаем три стандартных виджета WordPress. Вы можете добавить или убрать из списка те виджеты, которые хотите удалить. Очень важно, чтобы функция вызывалась с приоритетом выше 10, чтобы она выполнялась после регистрации виджетов.
Определение имён виджетов для удаления
Если вы не знаете точное имя класса виджета для удаления, его можно найти так:
- Откройте исходный код плагина или темы, которые регистрируют виджет — там будет класс, например
class WP_Widget_Recent_Posts extends WP_Widget. - Или используйте функцию для вывода всех зарегистрированных виджетов:
function wpchecker_list_all_widgets() {
global $wp_widget_factory;
echo '<pre>';
print_r($wp_widget_factory->widgets);
echo '</pre>';
}
add_action('admin_init', 'wpchecker_list_all_widgets');После выполнения этого кода на странице админки вы увидите список всех зарегистрированных виджетов с их именами классов.
Удаление виджетов из панели администратора без кода
Если вы не хотите писать код, можно использовать плагины, которые управляют виджетами:
- Widget Disable — позволяет легко отключать виджеты через интерфейс.
- Black Studio TinyMCE Widget — дает расширенные возможности для работы с виджетами.
Однако для тонкой настройки и удаления встроенных виджетов всё же лучше использовать код.
Дополнительные советы по оптимизации виджетов
Удаление стилей и скриптов, подключаемых виджетами
Некоторые виджеты подключают свои CSS и JS, которые не нужны, если виджет не используется. Чтобы убрать эти лишние подключения, можно использовать следующий подход:
function wpchecker_dequeue_widget_assets() {
if (!is_active_widget(false, false, 'widget-id-here', true)) {
wp_dequeue_style('widget-style-handle');
wp_dequeue_script('widget-script-handle');
}
}
add_action('wp_enqueue_scripts', 'wpchecker_dequeue_widget_assets', 20);Замените widget-id-here и widget-style-handle на реальные значения конкретного виджета.
Использование плагина Clearfy для управления виджетами
Плагин Clearfy Pro позволяет убирать неиспользуемые виджеты и функции WordPress через удобный интерфейс и оптимизировать работу сайта без погружения в код.
Заключение
Удаление ненужных виджетов — важный шаг для упрощения админки и повышения производительности сайта на WordPress. Используйте функции unregister_widget() для точечного удаления, а также следите за подключаемыми стилями и скриптами. При необходимости подключайте плагины, которые помогают управлять виджетами без кода. Надеемся, этот материал поможет вам сделать сайт быстрее и удобнее в управлении.