Удаление дефолтных виджетов из консоли WordPress

В нашей сегодняшней статье мы покажем вам, как убрать ненужные дефолтные виджеты из консоли WP (“Recent Activity”, “Right Now” и т.д.). При использовании WordPress для создания крупных сайтов порой необходимо удалить некоторые стандартные виджеты и добавить взамен им свои собственные. Ничего сложного. Единственное интересное замечание: код, который требуется для отключения стандартных виджетов, увеличивается в размерах вместе с развитием WordPress. Если у вас имеются сайты, на которых вы уже ранее отключали дефолтные виджеты консоли, то вам нужно проверить, работает ли старый код. В общем, вот функция, которая идеально работает с текущей версией WordPress (3.8):

/*
	Disable Default Dashboard Widgets
	@ http://digwp.com/2014/02/disable-default-dashboard-widgets/
*/
function disable_default_dashboard_widgets() {
	global $wp_meta_boxes;
	// wp..
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
	// bbpress..
	unset($wp_meta_boxes['dashboard']['normal']['core']['bbp-dashboard-right-now']);
}
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets', 999);

После добавления этого кода в functions.php он отключит все стандартные виджеты, которые выводятся на странице WP Dashboard (Консоль). Это достаточно радикальное изменение, поэтому убедитесь в том, что вам нужны все строки кода (закомментируйте или удалите лишние строки).

dashboard-widgets

Сам по себе код достаточно простой. В нем присутствует функция, которая использует unset для отключения дефолтных виджетов: “Recent Activity”, “Right Now” и т.д. Обратите внимание, что последняя строка отключает стандартный bbPress-виджет (удалите ее, если вам это не требуется). Функция подцепляется в WordPress через wp_dashboard_setup. Просто добавьте код в файл functions вашей темы. Он будет актуальным до тех пор, пока опять в WordPress что-нибудь не изменится.

Старый вариант удаления основан на использовании remove_meta_box() для каждого виджета. Пример:

remove_meta_box('dashboard_right_now', 'dashboard', 'core');
remove_meta_box('dashboard_recent_comments', 'dashboard', 'core');
remove_meta_box('dashboard_incoming_links', 'dashboard', 'core');
remove_meta_box('dashboard_plugins', 'dashboard', 'core');
remove_meta_box('dashboard_quick_press', 'dashboard', 'core');
remove_meta_box('dashboard_recent_drafts', 'dashboard', 'core');
remove_meta_box('dashboard_primary', 'dashboard', 'core');
remove_meta_box('dashboard_secondary', 'dashboard', 'core');
.
.
.

Я сталкивался и с другими методиками, но, как мне кажется, в версии 3.8 методология unset является самым подходящим способом удаления виджетов из консоли.

Источник: digwp.com

Блог про WordPress
Комментарии: 6
  1. DownHouse

    Они же в настройках сверху убираются

    1. Дмитрий (автор)

      Убрать в настройках и удалить — разные вещи. То, что убирается в настройках, может быть опять восстановлено пользователем. Здесь же удаляется полностью как функционал. Делается это с целью замены этих виджетов на что-то свое для стилизации консоли (соответствие бренду и т.д.) или просто для очистки пространства.

  2. Дуо

    «Они же в настройках сверху убираются»

    Вы наверное единственный пользователь на сайте? :)

    1. DownHouse

      Почему же?

  3. mihdan

    Не хватает remove_action(‘welcome_panel’, ‘wp_welcome_panel’); Для удаления приветственной панели

  4. Дмитрий

    Что вставлял код, что нет. Всё как было, так и осталось.

Добавить комментарий для Дмитрий Алёшин Отменить ответ

Получать новые комментарии по электронной почте.