WPTRT Admin Notices

Click here to view original web page at www.kobzarev.com
Обложка к записи WPTRT Admin Notices

Ребята из команды, которые делают ревью тем на wp.org, представили своё отличное решение WPTRT Admin Notices для показа уведомлений в админке WordPress.

WPTRT Admin Notices — это класс, который позволяет авторам тем и плагинов добавлять уведомления для пользователей консоли WordPress.

Основной целью данного проекта является предоставление стандартизированного метода создания уведомлений в стилистике WordPress.

Уведомления, созданные с использованием этого класса, автоматически удаляются.

Внешний вид

Внешний вид WPTRT Admin Notices

Как использовать

1234567$my_theme_notices = new \WPTRT\AdminNotices\Notices();// Добавляем уведомление.$my_theme_notices->add( (string) $id, (string) $title, (string) $content, (array) $options );// Загружаем.$my_theme_notices->boot();

Экземпляр класса Notices создается при помощи $my_theme_notices = new \WPTRT\AdminNotices\Notices(). А для добавления нового уведомления используется метов add().

Аргументы этого метода:

$idstringДаУникальный идентификатор для уведомления. Может содержать латинские буквы в нижнем оегистре и символ подчеркивания. На его основе генерится имя ключа для опции или меты у пользователя, которые записываются в базу данных.
$titlestringДаЗаголовок для вашего уведомления. Если вы не хотите использовать заголовок — передайте false.
$messagestringДаСодержимое уведомления. Может содержать только определенные теги: <p>, <a>, <em>, <strong>.
$optionsarrayНетДополнительные аргументы для уведомления, которые используются для изменения поведения по умолчанию.

Аргумент $options — это массив, который может содержать следующие опциональные настройки:

scopestringМожет быть global или user. Указывает, где хранить статус уведомления: в опциях или в метаданных пользователя.global
typestringМожет принимать одно из значений: info, success, warning, error.info
alt_styleboolУстановите true, если хотите использовать альтернативные стили для уведомления.false
capabilitystringКакие права должны быть у пользователя, чтобы он мог видеть уведомление. Подробнее о Ролях и Возможностях смотрите в статье.edit_theme_options
screensarrayМассив идентификаторов экрана, на которых показывать уведомление. Подробнее об экранах читайте в этой статье.[]
option_prefixstringПрефикс для генерации ключа опции или меты, в которых хранится статус уведомления.wptrt_notice_dismissed

Примеры

Вы можете добавить этот сниппет в уже существующий код темы или плагина.

Для начала необходимо инициализировать объект Notices:

12use WPTRT\AdminNotices\Notices;$my_theme_notices = new Notices();

Затем добавить простое уведомление с настройками по умолчанию:

12345$my_theme_notices->add('my_theme_notice',                           // Уникальный ID.esc_html__( 'Notice Title', 'textdomain' ),  // Заголовок.esc_html__( 'Notice content', 'textdomain' ) // Содержимое.);

Код из примера выше создает новое уведомление, которое будет показано на всех страницах консоли WordPress.

Когда уведомление будет закрыто, создастся запись в таблице wp_options с ключом wptrt_notice_dismissed_my_theme_notice.

Для большей кастомизации уведомления добавьте аргумент $options:

$my_theme_notices->add('my_notice',                                  // Уникальный ID.esc_html__( 'Notice Title', 'textdomain' ),   // Заголовок.esc_html__( 'Notice content', 'textdomain' ), // Содержимое.['scope' => 'user',       // Хранить статус уведомления в метаданных пользователя.'screens' => [ 'themes' ], // Показывать только на экране "Темы" screen.'type' => 'warning',    // Тип уведомления предупреждение (оранжевый цвет).'alt_style' => true,         // Использовать альтернативные цвета.'option_prefix' => 'my_theme',   // Изменить префикс меты для хранения статуса уведомления.]);

Код из примера выше создаст новое уведомление, которое будет показываться только на экране «Темы» консоли WordPress.

Когда уведомление будет закрыто, создастся запись в таблице wp_usermeta с ключём my_theme_my_notice.

Класс Notices может быть использован для добавления множества уведомлений.

После добавления нескольких уведомлений вызовите метод boot, чтобы они вывелись в консоли WordPress:

1$my_theme_notices->boot();

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

$my_theme_notices = new \WPTRT\AdminNotices\Notices()$my_theme_notices->add( 'my_theme_notice', __( 'Title', 'textdomain' ), __( 'Content', 'textdomain' ) );$my_theme_notices->boot();

Autoloading

Если вам нужен будет автозагрузик классов, то можно использовать либо Composer, либо простой autoloader из самого проекта WPRTR.

Composer

В командной строке пишем:

1composer require wptrt/admin-notices

WPTRT Autoloader

Если хотите подключить загрузчик от WPTRT, используйте следующий код:

include get_theme_file_path( 'path/to/autoload/src/Loader.php' );$loader = new \WPTRT\Autoload\Loader();$loader->add( 'WPTRT\\AdminNotices\\Notice', get_theme_file_path( 'path/to/admin-notices/src' ) );$loader->register();

Ссылки

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

Пошерить1

Твитнуть

Пошерить

Запинить

Отправить

Вотсап

Смотрите также