Добавяне на предупреждение към таблото за управление на администратора на WordPress, IT блог

Главно меню » Платформата за блогове на wordpress » Добавяне на предупреждение към таблото за управление на WordPress

За да направя това, използвах вградената кука 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 - отнася се за типа на известието. Приема един от низовете успех, грешка, информация или предупреждение.

Следният пример ще отпечата известие за статична грешка:

Добавяне на насочени известия

Четвъртият аргумент ви позволява да превърнете известието в несменяемо. wp-admin-notifications прави изтриването постоянно във всички администраторски страници, като съхранява манипулатора на известието в базата данни. Когато потребителят щракне върху бутона за затваряне, заявките се изпълняват асинхронно, за да се запази манипулаторът на известието.

Следният пример ще отпечата неотстранимо предупредително съобщение:

Но какво ще стане, ако искаме да покажем затворено известие? Например, когато потребител деинсталира плъгин и го инсталира отново, има смисъл да се покаже известието отново, дори ако потребителят го е отхвърлил преди това. За тази цел можете да използвате функцията wp_reset_admin_notification($handle), която нулира известието за дадения манипулатор. Повикването ще премахне дадения манипулатор от базата данни, ако потребителят преди това го е отхвърлил.

Например, следният код ще нулира известие, което съответства на манипулатора 'my-warning-notice':

Добра практика е да направите това извикване на функция като част от деактивирането на плъгин/тема. Това ще премахне следите от базата данни (освен ако няма друг плъгин, който го използва).

Добавяне на известия към многосайтови мрежи

В многосайтова среда на WordPress всеки сайт е отделна единица със собствена база данни и администриране на таблици. Освен това има добавен общ раздел за администриране на мрежата, който изисква връзка със специални куки за действие.wp-admin-notifications ще отпечата известия в цялата мрежа, ако 6-тият параметър е зададен на true. Той прави това чрез закачане на куката network_admin_notices.

Следният пример отпечатва известие за статична грешка на всички сайтове, включително областта за администриране на мрежата:

Персонализирайте външния вид на известията

Петият аргумент на функцията ви позволява да добавите допълнителен CSS клас към известието. Това ви позволява да персонализирате външния вид на известията по-подробно. Можете също така да разширите спецификата на CSS, като използвате идентификатора на известието.wp-admin-notifications използва манипулатора за известяване като атрибут ID на елемента.

Например, за да промените цвета на фона на следното известие:

Можете да използвате следния CSS:

Скорост и производителност

wp-admin-notifications се задейства само ако има поне 1 регистрирано известие. Следователно допълнителното въздействие върху производителността е незначително. Освен това, ако wp_reset_admin_notification($handle) се използва правилно, базата данни ще остане чиста от всякакви следи.