# Удаление виджетов и метабоксов из панели управления WordPress
Чтобы сделать работу в админке WordPress более удобной, иногда нужно отключить (удалить) метабоксы и виджеты. В этой статье мы рассмотрим, как это сделать.
## Удаление виджетов со страницы администрирования виджетов
### Способ 1: Отключение стандартных виджетов
Чтобы отключить стандартные виджеты на панели управления WordPress, используйте следующий код:
```php
add_action( 'widgets_init', 'unregister_basic_widgets' );
function unregister_basic_widgets() {
unregister_widget( 'WP_Widget_Pages' ); // Виджет «Страницы»
unregister_widget( 'WP_Widget_Calendar' ); // Календарь
unregister_widget( 'WP_Widget_Archives' ); // Архивы
unregister_widget( 'WP_Widget_Links' ); // Ссылки
unregister_widget( 'WP_Widget_Meta' ); // Метавиджет
unregister_widget( 'WP_Widget_Search' ); // Поиск
unregister_widget( 'WP_Widget_Text' ); // Текст
unregister_widget( 'WP_Widget_Categories' ); // Категории
unregister_widget( 'WP_Widget_Recent_Posts' ); // Недавние записи
unregister_widget( 'WP_Widget_Recent_Comments' ); // Недавние комментарии
unregister_widget( 'WP_Widget_RSS' ); // RSS
unregister_widget( 'WP_Widget_Tag_Cloud' ); // Облако тегов
unregister_widget( 'WP_Nav_Menu_Widget' ); // Меню
unregister_widget( 'WP_Widget_Media_Audio' ); // Аудио
unregister_widget( 'WP_Widget_Media_Video' ); // Видео
unregister_widget( 'WP_Widget_Media_Gallery' ); // Галерея
unregister_widget( 'WP_Widget_Media_Image' ); // Изображение
}
Способ 2: Отключение всех виджетов
Если вы хотите отключить все виджеты в WordPress, а также запретить регистрацию любых виджетов через хук widgets_init
, используйте следующий код:
remove_action( 'init', 'wp_widgets_init', 1 );
Этот код нужно вставить в файл functions.php
вашей темы.
Удаление метабоксов из панели управления сайта
Если вам не нужны никакие виджеты в админке WordPress, вы можете отключить их через настройки экрана. Для этого откройте "Настройки экрана" — всплывающее окно, которое позволяет выбрать необходимые виджеты.
Однако у этого способа есть два недостатка:
- Отключение виджетов с помощью галочек лишь скрывает блоки (с помощью CSS), но не удаляет их из кода.
- Если вы создаете индивидуальный сайт, лучше полностью удалить ненужные блоки, чтобы избежать их появления в "Настройках экрана".
Чтобы избежать этих недостатков, виджеты можно удалить программно, используя следующий код в файле functions.php
вашей темы:
add_action( 'wp_dashboard_setup', 'clear_wp_dash' );
function clear_wp_dash(){
$dash_side = &$GLOBALS['wp_meta_boxes']['dashboard']['side']['core'];
$dash_normal = &$GLOBALS['wp_meta_boxes']['dashboard']['normal']['core'];
unset( $dash_side['dashboard_quick_press'] ); // Быстрая публикация
unset( $dash_side['dashboard_recent_drafts'] ); // Недавние черновики
unset( $dash_side['dashboard_primary'] ); // Блог WordPress
unset( $dash_side['dashboard_secondary'] ); // Другие новости WordPress
unset( $dash_normal['dashboard_incoming_links'] ); // Входящие ссылки
unset( $dash_normal['dashboard_right_now'] ); // Прямо сейчас
unset( $dash_normal['dashboard_recent_comments'] ); // Недавние комментарии
unset( $dash_normal['dashboard_plugins'] ); // Последние плагины
unset( $dash_normal['dashboard_activity'] ); // Активность
unset( $dash_normal['dashboard_site_health'] ); // Состояние сайта
}
Удаление виджета "Приветствие"
Чтобы удалить виджет «Приветствие», используйте следующий код:
remove_action( 'welcome_panel', 'wp_welcome_panel' );
В этом коде я подписал, какая строка отвечает за какой виджет. Вы можете оставить только те строки, которые касаются виджетов, которые хотите удалить. Я не удалил их в коде, а закомментировал, то есть если этот код будет помещён в файл functions.php
, в админке WordPress останутся только 2 виджета: «Недавние черновики» и «Прямо сейчас».
Удаление метабоксов из сетевой консоли сайта (Multisite)
Удаление виджетов в сетевой консоли выполняется аналогично, но нужно использовать хук wp_network_dashboard_setup
:
add_action( 'wp_network_dashboard_setup', 'clear_wp_network_dash' );
function clear_wp_network_dash(){
$dash_normal = &$GLOBALS['wp_meta_boxes']['dashboard-network']['normal']['core'];
$dash_side = &$GLOBALS['wp_meta_boxes']['dashboard-network']['side']['core'];
unset( $dash_normal['network_dashboard_right_now'] ); // Прямо сейчас
unset( $dash_side['dashboard_primary'] ); // Новости и события WordPress
}
Помимо удаления виджетов, вы также можете создавать свои. Как это сделать, описано в следующих функциях:
register_widget()
add_meta_box()
wp_add_dashboard_widget()