Удаление виджетов и метабоксов из админки WordPress: полный гид

# Удаление виджетов и метабоксов из панели управления 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, вы можете отключить их через настройки экрана. Для этого откройте "Настройки экрана" — всплывающее окно, которое позволяет выбрать необходимые виджеты.

Однако у этого способа есть два недостатка:

  1. Отключение виджетов с помощью галочек лишь скрывает блоки (с помощью CSS), но не удаляет их из кода.
  2. Если вы создаете индивидуальный сайт, лучше полностью удалить ненужные блоки, чтобы избежать их появления в "Настройках экрана".

Чтобы избежать этих недостатков, виджеты можно удалить программно, используя следующий код в файле 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()

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *