В процессе разработки и настройки сайта на WordPress часто возникает необходимость полностью очистить боковые панели (сайдбары) от всех виджетов. Особенно это актуально при смене темы или кардинальной перестройке структуры сайта. В этой статье мы рассмотрим, как удалить все виджеты WordPress программно, а также какие плагины могут помочь в этом вопросе.
Почему нужно удалить все виджеты WordPress одновременно
Удаление виджетов по одному через админ-панель может занять много времени, особенно если их много и расположены они в нескольких сайдбарах. Быстрая очистка виджетов полезна в следующих случаях:
- Подготовка сайта к смене темы
- Оптимизация работы сайта и устранение конфликтов плагинов
- Удаление устаревших или неиспользуемых виджетов
- Автоматизация рутинных задач при массовом управлении сайтами
Теперь рассмотрим, как это сделать с помощью кода.
Удаление всех виджетов WordPress программно с помощью функции
Все виджеты хранятся в базе данных в опции sidebars_widgets. Эта опция содержит массив, где ключи — это области виджетов (например, sidebar-1), а значения — массивы с ID виджетов. Чтобы удалить все виджеты, нужно очистить эту опцию.
Пример функции для удаления всех виджетов:
function wpplugins_remove_all_widgets() {
update_option('sidebars_widgets', array());
}
// Запуск функции при инициализации админки
add_action('admin_init', 'wpplugins_remove_all_widgets');Данная функция полностью очищает все области виджетов, удаляя все прикрепленные к ним виджеты. После вызова обновите страницу с виджетами в админке — они будут пусты.
Как временно отключить функцию удаления
Так как функция вызывается на каждом заходе в админку, лучше выполнять её однократно, а затем комментировать или удалять. Иначе виджеты будут удаляться постоянно.
Для однократного запуска можно использовать проверку опции:
function wpplugins_remove_all_widgets_once() {
if ( ! get_option('wpplugins_widgets_cleared') ) {
update_option('sidebars_widgets', array());
update_option('wpplugins_widgets_cleared', true);
}
}
add_action('admin_init', 'wpplugins_remove_all_widgets_once');Удаление виджетов в определённом сайдбаре
Если нужно очистить виджеты не со всех областей, а только с конкретного сайдбара, например sidebar-1, то можно сделать так:
function wpplugins_remove_widgets_from_sidebar($sidebar_id = 'sidebar-1') {
$sidebars_widgets = get_option('sidebars_widgets');
if ( isset($sidebars_widgets[$sidebar_id]) ) {
$sidebars_widgets[$sidebar_id] = array();
update_option('sidebars_widgets', $sidebars_widgets);
}
}
// Пример вызова
add_action('admin_init', function() {
wpplugins_remove_widgets_from_sidebar('sidebar-1');
});Это позволит точечно удалять виджеты из нужных областей.
Использование плагинов для массового удаления виджетов
Если вы предпочитаете готовые решения, воспользуйтесь специализированными плагинами:
- Widget Disable — позволяет быстро отключать виджеты на сайте, но не удаляет их из базы.
- Remove All Widgets — плагин для массового удаления всех виджетов за пару кликов. Его можно найти на официальном репозитории WordPress.
- Clearfy Pro (https://wpshop.ru/clearfy-pro/?utm_source=wpplugins.ru&utm_medium=article&utm_campaign=kak-udalit-vse-vidzhety-sajta-wordpress-za-odin-kod) — многофункциональный плагин для оптимизации сайта, включая инструменты управления виджетами и очистки.
Преимущества плагинов
Плагины дают удобный интерфейс и минимизируют риск ошибки в коде. Особенно они полезны для пользователей без навыков программирования.
Как восстановить удалённые виджеты
Удаление виджетов из sidebars_widgets не удаляет сами настройки виджетов, которые хранятся в других опциях (например, widget_text, widget_categories и т.д.). Это значит, что при повторном добавлении виджетов в сайдбар они восстановят прежние настройки.
Если нужно полностью очистить все настройки виджетов, придется также удалять соответствующие опции в базе данных, что требует осторожности.
Советы и рекомендации
- Перед массовым удалением виджетов обязательно сделайте резервную копию базы данных.
- Тестируйте код на тестовом сайте или локально, чтобы не потерять важные данные.
- Используйте однократный запуск функций удаления, чтобы не удалять виджеты при каждом заходе в админку.
- Воспользуйтесь плагинами для удобства, если не хотите редактировать код.