WordPress как на ладони
Мощный и не дорогой хостинг от Fornex.com Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

Удаление виджетов в консоли или постах WordPress

Чтобы удобнее было работать в админке WordPress, иногда нужно отключить метабоксы и виджеты, В этой которой заметке посмотрим как это сделать.

Удаление виджетов на странице виджетов

Чтобы отключить базовые виджеты в WordPress используйте такой код:

## Отключаем стандартные виджеты WordPress
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');      // Audio
	unregister_widget('WP_Widget_Media_Video');      // Video
	unregister_widget('WP_Widget_Media_Gallery');    // Gallery
	unregister_widget('WP_Widget_Media_Image');      // Image
}

Используйте этот код в файле темы functions.php.

Подробнее о том как удалять виджеты и другие тонкости читайте в описании функции unregister_widget()

Виджеты (метабоксы) в консоли

Если в консоли WordPress не нужны какие-либо блоки (виджеты), то обычно они отключаются в «Настройках экрана» - всплывающее окошко, которое позволяет галочками выбрать нужные нам блоки.

Однако у такого способа отключения виджетов есть как минимум 2 недостатка:

  1. Выключение галочками, лишь скрывает блоки (средствами CSS), а не удаляет их из кода.

  2. Если мы делаем сайт на заказ, то некоторые блоки лучше вообще скрыть, чтобы не было ни блоков, ни галочек в "Настройках экрана".

Чтобы избежать этих недостатков, виджеты можно убрать на программном уровне, использовав такой код в файле темы functions.php:

## Удаление виджетов из Консоли WordPress
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'] );        // Активность
}

В коде я подписал какая строка за какой виджет отвечает. Здесь я специально показал все стандартные блоки Консоли WordPress, в действительности в коде нужно оставить только те строки которые отвечают за виджеты, которые нужно удалить (пардон за тавтологию). Я в коде их не удалил, а закомментировал, т.е, если данный код поместить в файл темы functions.php, то в Консоли WordPress останется всего 2 виджета: Полседние черновики и Прямо сейчас.

Удаление виджетов из Консоли Сети сайтов (мультисайт)

Здесь все делается точно также, только нужно использовать хук wp_network_dashboard_setup:

## Удаление виджетов из Консоли WordPress Multisite
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
}

Помимо удаления виджетов, можно также создавать свои. Как это делать подробно описано в кодексе WordPress.

26 комментов
  • Paul cайт: paul-maul.com

    Ogromnoe VAM NeChelovecheskoe Ot VSEY Dushi BLAGO_Daryu!!!

    Ответить4.1 года назад #
  • Ivan

    Отличная статья) Респектmosking

    Ответить3.5 года назад #
  • Дмитрий cайт: www.extrema.in.ua

    Огромное спасибо за полезный пост! Наконец-то лишнее со страницы удалено)

    Ответить3 года назад #
Здравствуйте, !     Войти . Зарегистрироваться