Видалення віджетів та метабоксів з консолі 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 недоліки:
Вимкнення галочками лише приховує блоки (засобами CSS), а не видаляє їх з коду.
- Якщо ми робимо сайт на замовлення, деякі блоки краще взагалі приховати, щоб не було ні блоків, ні галочок в “Налаштуваннях екрана”.
Щоб уникнути цих недоліків, віджети можна забрати на програмному рівні, використовуючи такий код у файлі теми 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
}–
Крім видалення віджетів, можна також створювати свої . Як це робити описано в:
