Видалення віджетів та метабоксів з консолі 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'] ); // Активність
	unset($dash_normal['dashboard_site_health']); // Здоров'я сайту
}

## Видалення віджету "Ласкаво просимо"
remove_action( 'welcome_panel', 'wp_welcome_panel');

У коді я підписав який рядок, за який віджет відповідає. Тут я спеціально показав усі стандартні блоки Консолі 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
}

Крім видалення віджетів, можна також створювати свої . Як це робити описано в:

Залишити коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *