В стандартной установке WordPress вы можете столкнуться с множеством предустановленных виджетов, которые не нужны или мешают удобной работе на сайте. Особенно это актуально для разработчиков, которые хотят предоставить заказчику или пользователю максимально упрощённый интерфейс, убрав лишние элементы.
Почему стоит удалять ненужные виджеты WordPress
Удаление ненужных виджетов помогает:
- Сделать интерфейс админ-панели более чистым и понятным.
- Уменьшить вероятность случайных ошибок при добавлении виджетов.
- Повысить безопасность, скрывая неиспользуемые функциональные блоки.
Кроме того, это положительно влияет на производительность, так как WordPress не будет загружать лишний код и стили для неиспользуемых виджетов.
Как удалить виджеты через functions.php темы
Для удаления виджетов нужно использовать функцию unregister_widget(). Она должна вызываться после инициализации всех виджетов, то есть в хукe widgets_init с приоритетом позже 10 (обычно 11 или выше).
Пример кода для удаления стандартных виджетов:
function wpmagazin_remove_default_widgets() {
unregister_widget('WP_Widget_Calendar');
unregister_widget('WP_Widget_Archives');
unregister_widget('WP_Widget_Meta');
unregister_widget('WP_Widget_Pages');
unregister_widget('WP_Widget_Recent_Comments');
unregister_widget('WP_Widget_Recent_Posts');
unregister_widget('WP_Widget_RSS');
unregister_widget('WP_Widget_Search');
unregister_widget('WP_Widget_Tag_Cloud');
}
add_action('widgets_init', 'wpmagazin_remove_default_widgets', 11);В этом примере мы удаляем все стандартные виджеты WordPress, которые могут не понадобиться на сайте.
Как узнать имя виджета для удаления
Чтобы удалить сторонний виджет, нужно знать его класс. Обычно этот класс можно найти в коде плагина или темы, либо посмотреть в админке в описании виджета.
Например, если установлен плагин WPRemark, и вы хотите убрать его виджет отзывов, нужно найти название класса виджета, например WPRemark_Widget_Reviews, и добавить в функцию:
unregister_widget('WPRemark_Widget_Reviews');Удаление виджетов с условием
Иногда нужно удалять виджеты только в админке для определённых ролей пользователей или на определённых страницах. Для этого внутри функции удаления можно добавить проверки:
function wpmagazin_conditional_remove_widgets() {
if (current_user_can('editor')) {
unregister_widget('WP_Widget_Recent_Posts');
}
}
add_action('widgets_init', 'wpmagazin_conditional_remove_widgets', 11);В этом примере виджет «Последние записи» будет скрыт только для редакторов.
Удаление виджетов из панели «Консоли» (Dashboard)
Отдельно стоит упомянуть виджеты, которые появляются на главной странице административной панели (Dashboard). Их удаление делается иначе, через хук wp_dashboard_setup.
Пример удаления стандартных виджетов консоли:
function wpmagazin_remove_dashboard_widgets() {
remove_meta_box('dashboard_quick_press', 'dashboard', 'side');
remove_meta_box('dashboard_recent_drafts', 'dashboard', 'side');
remove_meta_box('dashboard_primary', 'dashboard', 'side');
remove_meta_box('dashboard_secondary', 'dashboard', 'side');
remove_meta_box('dashboard_incoming_links', 'dashboard', 'normal');
remove_meta_box('dashboard_plugins', 'dashboard', 'normal');
remove_meta_box('dashboard_right_now', 'dashboard', 'normal');
remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
}
add_action('wp_dashboard_setup', 'wpmagazin_remove_dashboard_widgets');Практические советы при работе с виджетами
1. Делайте резервную копию файла functions.php перед изменениями, чтобы избежать ошибок, которые могут вывести сайт из строя.
2. Если хотите временно отключить виджет, лучше закомментировать строку с unregister_widget, а не удалять её.
3. Используйте префиксы в именах функций, например wpmagazin_, чтобы избежать конфликтов с другими плагинами и темами.
4. Для упрощения работы с виджетами можно использовать бесплатный плагин Clearfy Pro с функцией управления виджетами и оптимизации.
Заключение
Удаление ненужных виджетов через код — простой и эффективный способ сделать административную часть WordPress чище и удобнее. Это помогает ускорить работу, снизить нагрузку и повысить безопасность сайта. Используйте примеры из статьи, чтобы быстро внедрить эту оптимизацию в свои проекты.
Все плагины и темы с примерами кода вы можете найти на WPSHOP.RU.