Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress
Code

Постоянные уведомления администратора WordPress: Часть 1

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called Persisted WordPress Admin Notices.
Persisted WordPress Admin Notices: Part 2

Russian (Pусский) translation by Anna Goorikova (you can also view the original English article)

Уведомления администратора WordPress обеспечивают удобный способ отображения сообщений пользователям в области администрирования, например, после того, как пост обновлен или активирован плагин. Они также используются многими темами и плагинами для отображения уведомлений о чем-либо: от новых функций или предупреждений о безопасности до подробностей о текущих рекламных акциях или подсказках по обновлению.

Ядро WordPress предоставляет четыре разные уведомления администратора, которые можно использовать, чтобы предупредить пользователя о конкретном типе уведомления. Это достигается путем отображения уникального цветового акцента для каждого типа сообщения администратора.

Уведомления администратора обычно отображаются в верхней части каждой страницы в администраторской части сайта, чтобы выделяться из содержимого главной страницы и быть хорошо заметными. Они элегантно оформлены таким образом, чтобы визуально не слишком отвлекать внимание.

WordPress core admin notice

WordPress также повторно использует уведомления администратора в других местах интерфейса администратора, например, когда доступно обновление темы или плагина. Использование уведомлений администратора не ограничивается только отображением в верхней части экрана администратора.

WordPress admin notices in alternative location

Вывести уведомления администратора в пользовательском плагине или теме относительно просто, требуется всего несколько строк кода, как мы вскоре узнаем. Тем не менее, WordPress не предоставляет способ по умолчанию отклонить постоянное уведомление администратора.

Несмотря на то, что вы можете добавить кнопку отмены к любому уведомлению администратора, это не мешает его повторному появлению после перезагрузки страницы. Кроме того, уведомления администратора появляются на каждой странице интерфейса администратора, что далеко не идеально.

Если вы хотите иметь полный контроль над тем, когда и где отображаются уведомления администратора, и иметь возможность отменять их, вам нужно добавить собственный код, чтобы изменить поведение по умолчанию.

Что мы будем делать

Мы начнем с самого начала и изучим основы реализации уведомлений администратора через пользовательский плагин, включая отображение их только на определенных страницах в интерфейсе администратора WordPress.

Уведомления администратора отображаются на каждой странице по умолчанию, что не всегда то, что вы хотите. Например, вы планируете отображать уведомление только на странице параметров плагина. Таким образом, наш следующий шаг будет состоять в том, чтобы отображать уведомления администратора в зависимости от текущей страницы.

Основываясь на этом, мы представим способы дальнейшего управления уведомлениями администратора, контролируя момент их появления. Вместо того, чтобы выводиться сразу после загрузки страницы, они появятся, только если выполняются определенные условия. Это может быть полезно, например, если вы хотите отобразить уведомление администратора на странице параметров плагина, но только после сохранения настроек.

Как уже упоминалось выше, нет простого способа отклонять постоянные уведомления администратора между перезагрузками страницы. Таким образом, оставшаяся часть этой серии руководств будет посвящена главным образом различным методам, которые вы можете использовать, чтобы убрать уведомления администратора, чтобы они не появлялись неожиданно.

В конце, мы немного повеселимся: посмотрим, как можно создать свои собственные настраиваемые типы уведомлений администратора и добавить дополнительные украшения в уведомления администратора, например значки.

В конце этой серии руководств вы сможете отображать любое уведомление администратора в любом месте интерфейса администратора WordPress. Кроме того, вы сможете решить, показывать ли их при загрузке страницы или с помощью пользовательского действия, а также сможете отклонять их различными способами, в зависимости от ваших потребностей.

Хотите продолжить?

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

Предполагается, что у вас есть хотя бы самые основные знания о разработке WordPress плагина, в том числе о том, как работают хуки. Если нет, то я рекомендую прочитать эти темы в официальной документации WordPress, прежде чем продолжить:

Чтобы проверять код плагина для каждого примера, вам понадобится рабочий сайт WordPress. Самый простой способ сделать это - установить WordPress локально, чтобы у вас был легкий доступ к редактированию файлов.

Существует много вариантов для локальной разработки в WordPress, в том числе:

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

Кроме того, рекомендуется наличие небольшого опыта в PHP и JavaScript, а также опыт реализации Ajax-запросов. Однако все будет объяснено в процессе, поэтому глубокие знания не требуются.

Более внимательный взгляд на уведомления администратора

Давайте рассмотрим самую основную реализацию уведомления администратора и код, необходимый для вывода типа уведомления "Успешно".

A Successful admin notice

Все, что мы сделали здесь, было для того, чтобы зарегистрировать функцию display_admin_notice(), которая будет запускаться при запуске хука admin_notices. Неважно, какая зарегистрированная функция вызвана, это не повлияет на то, как выведется уведомление администратора.

Не беспокойтесь о вводе кода прямо сейчас; просто сосредоточьтесь на том, как создается уведомление администратора, так как мы будем брать это за основу в последующих руководствах.

Вы можете использовать любую разметку, которая вам нравится, чтобы отображать уведомление администратора; однако рекомендуемый формат выглядит следующим образом:

Замените {class} на список имен классов CSS. Чтобы определить тип уведомления администратора, вы должны использовать класс notice и любой из следующих классов:

  • notice-error (красный)
  • notice-warning (желтый/оранжевый)
  • notice-success (зеленый)
  • notice-info (голубой)
The various admin notices

Блок {message} может быть любым текстом или валидным HTML, который будет отображаться внутри уведомления администратора.

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

Существует еще один встроенный CSS-класс, который вы можете добавить в div.notice, который добавляет кнопку отклонения в уведомление администратора. Давайте посмотрим, что произойдет, когда к тому же уведомлению типа "Успешно" добавить класс is-dismissible.

Our first admin notice

Теперь у нас есть простой способ отклонить уведомление администратора. Однако, не спешите воодушевляться, есть проблема с использованием этого метода. Если вы обновите страницу, уведомление администратора появится снова! Таким образом, несмотря на то, что вы можете сделать уведомление администратора отклоняемым, оно постоянное, и статус "Отклонено" забыт после перезагрузки страницы.

Мы подробно расскажем о постоянных уведомлениях администратора позже и рассмотрим различные способы их отклонения без повторного появления.

Но уведомления администратора плохие! Не так ли?

Если вы вообще знакомы с уведомлениями администратора в WordPress и/или не отстаете от новостей WordPress в целом, вы скорее всего знаете о некоторой негативности в отношении использования уведомлений администратора в пользовательских плагинах и темах.

Это связано с тем, что некоторые плагины используют уведомления администратора для создания своих «важных» сообщений. Если у вас установлено много плагинов, и некоторые из них злоупотребляют системой уведомлений администратора, вы можете быстро разобраться с блоком, где в верхней части каждой страницы администратора отображается весь список уведомлений.

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

В идеале при загрузке страницы должны отображаться только важные уведомления администратора, такие как критические обновления для системы безопасности. Если вы показываете глобальные уведомления администратора, чтобы сообщить пользователям, что плагин только что был обновлен, и предложить нажать ссылку для получения дополнительной информации, то вы должны спросить себя, нужно ли это на каждой странице интерфейса администратора.

Кроме того, типичным приемом является вывод некритического уведомления администратора, которое не может быть отменено навсегда. Я гарантирую, что нет проще способа оттолкнуть пользователей плагинов, чем делать это!

Тем не менее, существуют случаи использования постоянных уведомлений, которые не являются отклоняемыми, например, обновления баз. Плагинам, использующим пользовательские таблицы, может потребоваться время от времени запускать процедуры обновления базы данных, чтобы плагин работал корректно. Поэтому в этом случае разумно добавить неотклоняемое уведомление администратора.

Хорошее правило - просто использовать здравый смысл. Будет ли уведомление администратора, которое вы собираетесь добавить в свой плагин, раздражать вас как пользователя? Если это так, вы скорее всего захотите переосмыслить добавление уведомления или подумать, не будет ли он лучше отображаться в другом месте.

Вывод

В этом учебном руководстве мы рассмотрели, что такое уведомления администратора и их различные встроенные типы, предоставленные WordPress, включая неотклоняемое уведомление администратора. Как мы видели, есть некоторые недостатки в реализации уведомлений администратора по умолчанию, например, невозможность их отклонять, и то, что они отображаются на каждой странице администратора.

WordPress имеет невероятно обширную структуру. Существуют темы, плагины, библиотеки и многие другие продукты, которые помогут вам создать свой сайт и проект. Открытость платформы также делает ее отличным продуктом, благодаря которому вы можете улучшить свои навыки программирования. В любом случае, вы видите, что у нас есть Envato Market.

Остальные статьи этой серии будут посвящены тому, как мы можем расширить уведомления администратора, чтобы быть более гибкими при использовании их в своих собственных плагинах и темах.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.