Для этого я использовал встроенный крюк admin_notices
, чтобы напечатать уведомление на всех страницах администратора. Тем не менее, эти уведомления, как правило, загромождают и иногда раздражают пользователя и, таким образом, получается наоборот наших намерений. Поэтому для меня было важно, позволить пользователям отклонить эти уведомления. Проблема заключалась в том, что WordPress не предоставляет интерфейс для выполнения этого.
Начиная с версии 4.2, WordPress поддерживает неотстранимые уведомления администратора. К сожалению, освобождение не является постоянным. Снятые уведомления будут появляться снова, когда пользователь перезагружает страницу или перейдет на другую страницу администратора.
С этой целью был разработал wp-admin-notifications — простой скрипт, который позволяет легко добавлять статические/неотстранимые уведомления администратора с одной строкой кода. Сценарий также предлагает дополнительные возможности для дальнейшей настройки поведения уведомления.
В следующем учебнике вы узнаете, как вы можете добавить статические и неотстранимые уведомления с помощью wp-admin-notifications.
Добавление статического уведомления администратора в WordPress с помощью wp-admin-notifications, так же просто, как сделать единый вызов функции wp_admin_notification()
. Как минимум, эта функция принимает 3 параметра — $handle
, $content
и $type
.
$handle
используется для идентификации уведомления (далее мы будем обсуждать это в контексте неотстранимые уведомления).
$content
используется в качестве содержания уведомления, и принимает текст и HTML.
$type -
относится к типу уведомлении. Он принимает одну из строк success
, error
, info
или warning
.
Следующий пример выведет статическое уведомление об ошибке:
<?php wp_admin_notification( 'my-error-notice', __('Ой! Это <strong>ошибка</strong> в сообщении.','slug'), 'error' ); ?>
Четвертый аргумент позволяет превратить уведомление в неотстранимые. wp-admin-notifications делает удаление стойкими ко всем страницам администратора, сохраняя handle уведомлении в базе данных. Когда пользователь нажимает на кнопку закрыть, исполнение запросов производится в асинхронном режиме, чтобы сохранить handle уведомлении.
Следующий пример выведет неотстранимое предупреждающее уведомление:
<?php wp_admin_notification( 'my-warning-notice', __('Внимание, это <strong>предупреждение</strong> в сообщении.','slug'), 'warning', true ); ?>
Но что , если мы хотим показать закрытое уведомление? Например, когда пользователь удаляет плагин и устанавливает его еще раз, это имеет смысл, чтобы показать уведомление снова , даже если пользователь отклонил его ранее. Для этой цели можно использовать функцию wp_reset_admin_notification($handle)
, которая сбрасывает уведомление для данной handle. Вызов удалит данную handle из базы данных, если пользователь ранее отклонил его.
Например, следующий код сбросит уведомление о том, что соответствует handle 'my-warning-notice'
:
<?php wp_reset_admin_notification( 'my-warning-notice' ); ?>
Это хорошая практика, чтобы сделать вызов этой функции как часть деактивации плагина/темы. Это приведет к удалению следов из базы данных (если не существует другой плагин, который использует его).
В многоузлового среде WordPress, каждый сайт является его собственное отдельное лицо со своими собственными администрированием баз данных и таблиц. Кроме того, существует общий раздел, куда добавлены для администрирования сети, которая требует подключения к специальным крюкам действия. wp-admin-notifications будут печатать общесетевые уведомления, если 6 — й параметр установлен true
. Она делает это путем подключения к крючку network_admin_notices
.
Следующий пример печатает статическое уведомление об ошибке на всех сайтах, в том числе в области сетевого администрирования:
<?php wp_admin_notification( 'my-error-notice', __('Ой! Это <strong>ошибка</strong> в сообщении.','slug'), 'error', false, '', // Добавлен класс CSS true // Сделать в сети уведомления ); ?>
5 — ый аргумент функции позволяет добавлять дополнительный класс CSS к уведомлению. Это позволяет более детально настроить внешний вид уведомлений. Вы можете также расширить CSS специфичность, используя ID уведомлении. wp-admin-notifications использует handle уведомления в качестве атрибута ID элемента.
Например, чтобы изменить цвет фона следующего уведомления:
<?php wp_admin_notification( 'my-error-notice', __('Ой! это <strong>ошибка</strong> в сообщении.','slug'), 'error', false, 'my-notice', // Добавлен класс CSS ); ?>
Вы можете использовать следующий CSS:
.my-notice { background-color: red; } /* Или использовать идентификатор, чтобы увеличить специфичность */ #my-error-notice { background-color: red; }
wp-admin-notifications инициирует только при наличии по крайней мере , 1 зарегистрированного уведомления. Таким образом, дополнительное воздействие производительности незначительна. Кроме того, если wp_reset_admin_notification($handle)
правильно используется, то база данных будет оставаться в стороне от каких — либо следов.
С помощью wp-admin-notifications при добавлении статических / неотстранимых уведомлений становится легким. Если вы найдете ее полезной, пожалуйста, поделитесь этой статьи. Если у вас есть какие — либо дополнительные вопросы/запросы, пожалуйста, напишите их в комментариях. Благодарю!
Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!
Спасибо! Ваша заявка принята
Спасибо! Ваша заявка принята