Intereting Posts
Как включить мой собственный css в сообщение Каков наиболее эффективный способ добавления дополнительных функций для администратора Запланированное событие не срабатывает Как отобразить список авторов с разбиением на страницы в виджетах wp_verify_nonce всегда возвращает false при входе в систему как admin создание страницы загрузки пользователя при активации плагина Изменить панель администратора по умолчанию: выкл. Можно ли изменить правила CSS для комментариев Disqus? Обновите локальную версию WordPress – ссылки указывают на живой сайт Как визуализировать типы сообщений в RSS-фиде? Создать таксономию только для администраторов? Фильтрация настраиваемого типа сообщений по пользовательской таксономии в шаблоне архива Как скрыть определенные ящики таксономии от пользователей в админе, добавить страницу сообщения? Пользовательский пост в пользовательском сообщении Поиск настраиваемого типа сообщений по метаданным

Как отключить уведомления об обновлениях панели мониторинга для подписчиков?

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

Все, что я хочу, – это скрыть предупреждения от панели мониторинга. Где я могу найти код, чтобы изменить это?

Я нашел здесь сайт, который подсказывает, что я ищу код:

add_action('admin_head','addDashboardAlert'); 

Но я не знаю, где его искать.

ОБНОВИТЬ

Я нашел еще более подходящий код, чтобы сделать оповещения условными на роль пользователя, здесь :

 if (!current_user_can('delete_posts')) { 

вы можете включить в свой файл functions.php пользовательский css, который скрывает элемент update_nag (уведомления), зависящий от возможностей пользователя:

 add_action('admin_head','admin_css'); function admin_css() { if(!current_user_can('administrator'))//not and admin { echo '<style>'; echo '.update_nag{display:none}'; echo '</style>'; } } 

При обновлении этого ответа исходный код снимет экран nag, но он будет пинговать сервер для обновлений при каждой загрузке, благодаря @ El Yobo, см. Обновление ниже.

Это отключит основные обновления и экран скриншот для всех, кроме сурадминов.

 add_action( 'after_setup_theme', 'remove_core_updates' ); function remove_core_updates() { if ( ! current_user_can( 'update_core' ) ) { return; } add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 ); add_filter( 'pre_option_update_core', '__return_null' ); add_filter( 'pre_site_transient_update_core', '__return_null' ); } 

Отключить все уведомления плагина;

 remove_action( 'load-update-core.php', 'wp_update_plugins' ); add_filter( 'pre_site_transient_update_plugins', '__return_null' ); 

Чтобы удалить определенный плагин, вы можете попробовать это, но он не будет на 100% работать в зависимости от плагина;

 function ya_remove_plugin_update($value) { $plugin_relative_path = "plugin_relative_path"; // change this to your plugin unset( $value->response[ $plugin_relative_path ] ); return $value; } add_filter( 'site_transient_update_plugins', 'ya_remove_plugin_update' ); 

обновленный

Это полностью отключает обновления (я не могу заставить его работать на основе ролей пользователя) И прекратить пинги для обновлений (он бросит предупреждение PHP, не уверен, как исправить это, не изменяя ядро).

 function remove_core_updates(){ global $wp_version; return (object) array( 'last_checked' => time(), 'version_checked' => $wp_version, ); } add_filter('pre_site_transient_update_core', 'remove_core_updates'); add_filter('pre_site_transient_update_plugins', 'remove_core_updates'); add_filter('pre_site_transient_update_themes', 'remove_core_updates'); 

Мне не удалось работать с этими сценариями выше, поэтому я исследовал немного больше и нашел это:

 //Remove update notifications from sub-users add_action('admin_head','admin_css'); function admin_css() { if( current_user_can('YOUR_SELECTED_ROLE'))//Choose the correct role where you need to block update nag { add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) ); } } 

Получив ответ от @ wyck, все уведомления об обновлениях и предупреждения PHP теперь скрыты с помощью приведенного ниже сценария. Просто поместите это в свои functions.php

 function remove_core_updates() { global $wp_version; return (object) array( 'last_checked' => time(), 'version_checked' => $wp_version, ); } add_filter('pre_site_transient_update_core', 'remove_core_updates'); add_filter('pre_site_transient_update_plugins', 'remove_core_updates'); add_filter('pre_site_transient_update_themes', 'remove_core_updates'); function remove_menu() { global $submenu; if (isset($submenu['index.php'][10])) unset($submenu['index.php'][10]); // Removes 'Updates'. } add_action('admin_menu', 'remove_menu'); с function remove_core_updates() { global $wp_version; return (object) array( 'last_checked' => time(), 'version_checked' => $wp_version, ); } add_filter('pre_site_transient_update_core', 'remove_core_updates'); add_filter('pre_site_transient_update_plugins', 'remove_core_updates'); add_filter('pre_site_transient_update_themes', 'remove_core_updates'); function remove_menu() { global $submenu; if (isset($submenu['index.php'][10])) unset($submenu['index.php'][10]); // Removes 'Updates'. } add_action('admin_menu', 'remove_menu');