Исключить панель администратора от отображения настройки аватара

Я настраиваю аватар WP (чтобы соответствовать сетке) и не хочу, чтобы настройка аватара отображалась на панели администратора, выпадающей панели или на панели мониторинга или на сайте (когда панель администратора видна).

Я исключил изменение аватара из панели управления, используя этот код в functions.php:

function foo_change_avatar($class) { if(!is_admin()) { // avatar customization code } return $class; } add_filter('get_avatar','foo_change_avatar'); 

Как я также могу запретить показывать свою настройку в раскрывающемся списке панели управления, когда панель администратора видна на сайте?

Solutions Collecting From Web of "Исключить панель администратора от отображения настройки аватара"

В WP_Admin_Bar::add_menus() класса WP_Admin_Bar::add_menus() вы найдете действия:

 add_action( 'admin_bar_menu', 'wp_admin_bar_my_account_menu', 0 ); add_action( 'admin_bar_menu', 'wp_admin_bar_my_account_item', 7 ); 

и два соответствующих обратных вызова используют get_avatar() .

Чтобы предотвратить изменения аватара на панели администратора, мы можем удалить фильтр foo_change_avatar перед этими обратными вызовами, а затем добавить его снова после того, как панель администратора будет обработана с wp_after_admin_bar_render фильтра wp_after_admin_bar_render (похоже, что этот фильтр не документирован в Codex):

 add_action( 'admin_bar_menu', function(){ remove_filter('get_avatar','foo_change_avatar'); },0); add_action( 'wp_after_admin_bar_render', function(){ add_filter('get_avatar','foo_change_avatar'); }); 

Итак, эта часть панели меню администратора:

введите описание изображения здесь

где используется get_avatar() , следует исключить из изменений.

Мы также могли использовать фильтр admin_bar_menu с приоритетом больше 7 вместо фильтра wp_after_admin_bar_render .