Как да добавите администраторски известия и съобщения за грешки към бекенда на WordPress, Всичко за
Уведомленията на администратора са неразделна част от добавките. Известията ви позволяват да показвате съобщения за грешка/успех, различни персонализирани предупреждения. С тези известия можете да обясните на потребителите какво точно се е случило, както и да изискате от тях да предприемат някакво действие.
В тази статия ще разгледаме стандартния начин за добавяне на администраторски известия, както и някои от допълнителните опции, въведени в WordPress 4.2, като например създаване на затварящи се известия.
Как изглежда известието на администратора?
Известието на администратора е специален блок, който се състои от бял фон, цветна рамка отляво и малко текст. Има три цвята за известия: зелен, оранжев и червен. Както подсказва имената на класовете за уведомяване, те се използват за показване на съобщения за завършване на процес, за съобщения за необходимост от извършване на някакво действие, а също и за съобщения за грешки. Като цяло зелените съобщения са съобщения за успешното завършване на всяко действие.
Обърнете внимание, че съобщенията с жълта рамка - обикновено съобщения за актуализиране - се показват в най-горната част на екрана, докато другите два типа се показват под заглавието на страницата.
Анатомия на известията на администратора
Всяко известие по същество е div с клас известия, към който се добавят други класове. Зелените известия използват актуализирания клас, червените известия използват класа за грешка, а жълтите известия използват класа update-nag. Можете да добавите произволен текст към известията, но най-добрият избор би биледин ред текст, заобиколен от p тагове. HTML кодът за известия от екранната снимка ще изглежда така:
Добавяне на известия към страници
В случай, че не сте запознати с функцията e(), тя се използва за превод. Това е един от компонентите на семейство от функции, които можете да използвате, за да направите вашия плъгин достъпен на различни езици.
Генериране на известия в зависимост от действията на потребителя
Тъй като вашите известия зависят от определени действия или резултати, винаги ще имате някои изрази if във вашия код.
Нека да разгледаме плъгин, който показва известия, ако плъгинът Advanced Custom Fields не е активиран. Този подход е много удобен, ако имаме нужда от ACF за работа.
Затваряне на известия
WordPress 4.2 въведе вградени затварящи се известия. Всичко, което трябва да направите, за да получите такова известие, е да добавите класа is-dismissable към него.
Недостатъкът на този подход е, че няма стандартизиран начин в WordPress да запомни това действие (отхвърляне), освен в някои случаи.
Най-добрият начин да направим това в момента е да прикачим събитие към щракването и да правим каквото искаме чрез AJAX. Процесът ще бъде както следва:
- Известието ще се показва само за потребителя, който не го е затворил. Следователно опцията my-acf-notice-dismissed ще бъде зададена на 1, ако потребителят е отхвърлил известието.
- Ще проследим щракването върху бутона за затваряне и ще направим AJAX повикване
- Извикването на AJAX ще актуализира опцията my-acf-notice-dismissed до 1.
- Ако искаме да покрием абсолютно всички аспекти, ще трябва да засечем и наличието на функциятаthe_field() на приставката ACF и премахнете опцията, ако съществува. Това ще ни позволи да гарантираме, че известията ще се появят отново, когато ACF плъгинът бъде премахнат. За да направим това обаче, ще трябва да извършим функционална проверка при всяко зареждане на страница, което може да изисква твърде много ресурси.
Условно уведомление
Нека вземем опцията my-acf-notice-dismissed от базата данни и да създадем известие, което ще се показва само ако стойността на опцията не е 1.
Това е много подобно на нашия код по-горе - просто добавихме проверка за празно към нашата опция (независимо дали е зададена).
Обърнете внимание, че добавих класа my-acf-notice към известието, за да гарантирам, че свързваме събитието само с нашето известие.
Дефиниране на кликване
Преди да напишем JS код, първо трябва да създадем JS файл и да го поставим в опашка.
Да предположим, че пишем прост плъгин с js файл в папката js:
В този js файл трябва да създадем събитие за кликване, като го прикачим към .my-acf-notice - това събитие ще инициира нашето AJAX извикване.
Актуализиране на нашите опции
Параметърът за действие на нашето AJAX повикване беше my_dismiss_acf_notice - той ни позволява да получим шаблон за генериране на код, който ще обработва всички неща от страната на сървъра. Всичко, което трябва да направим, е да актуализираме опцията my-acf-notice-dismissed до 1.
Ако не сте работили с AJAX преди, можете да разгледате нашия урок на връзката.
В този момент вече можете да заредите конзолата, да видите известието и да го отхвърлите и то няма да се показва отново.
Връщане на известието
Нашето известие още не е сто процента готово. Ако ACF не е зададен, ще го направиизход. Потребителят може да го откаже, но да инсталира ACF по-късно. Ако след това ACF бъде деактивиран по някаква причина, известието ще остане скрито.
За да избегнем това, можем да проверим за съществуването на функцията the_field() – важна функция, използвана в ACF – и ако не съществува, да премахнем нашата опция.
Това е донякъде ресурсоемък подход, но можем да го приложим с помощта на кука, която работи само за администраторски страници, което е напълно приемливо.
Известията на администратора са полезни и модулни части от работата на администратора. Те могат да бъдат регистрирани на индивидуална основа, давайки на разработчиците по-добър достъп до вашето решение.