Видалення віджетів та метабоксів з консолі 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 }
–
Крім видалення віджетів, можна також створювати свої . Як це робити описано в: