En hjälpfunktion för adminmeddelanden
Om du sysslar med att bygga plugins, eller till och med teman för den delen, och införlivar objektorienterad praxis i ditt arbete så står du troligen inför serialisering av någon typ. Och en av aspekterna av serialisering att det kräver någon typ av feedback för användaren.
Detta kan vara ett framgångsmeddelande, ett misslyckandemeddelande eller ett meddelande som helt enkelt varnar användaren om att något gick fel eller att något kanske borde uppdateras.
Hur som helst, WordPress tillhandahåller alla faciliteter som vi behöver; vi kan dock göra det ännu enklare för oss själva genom att skriva en hjälpfunktion för adminmeddelanden. Det är enkelt också.
Adminmeddelanden: En hjälpfunktion
När det kommer till att skriva adminmeddelanden är det viktigt att bekanta sig med lämplig hook.
Därifrån måste du också känna till följande klassnamn:
- meddelande-fel
- varsel-framgång
- varsel-varning
- meddelande-info
Med det är det möjligt att skriva en hjälpfunktion som använder ovanstående krok och en anonym funktion (eller en stängning) för att uppnå exakt vad du behöver. Men observera först följande:
Anonyma funktioner, även kända som stängningar, tillåter skapandet av funktioner som inte har något specificerat namn. De är mest användbara som värdet av återuppringningsparametrar, men de har många andra användningsområden.
Med det sagt bör du ha allt du behöver för att skriva till din hjälpare och ha en idé om när du ska tömma den.
Först, hjälpfunktionen:
<?php
/**
* Provides an easy eay to display an administration notice based on the incoming
* class and message.
*
* @param string $class the class to add to the notice (warning, error, success)
* @param string $message the message to display in the administration notice area
*/
protected function displayAdminNotice($class, $message)
{
add_action(
'admin_notices',
function() use ($class, $message) {
printf(
'<div class="%1$s"><p>%2$s</p></div>',
esc_attr($class),
esc_html($message)
);
}
);
}
Låt oss sedan säga att begäran som görs innehåller ogiltiga data. För att hantera detta, skulle du använda ovanstående hjälpare som följande:
<?php
if (!$this->hasValidInput()) {
$this->displayAdminNotice(
'notice notice-error',
'You must specify a valid email address and license key.'
);
}
Å andra sidan, låt oss säga att allt fungerar bra:
<?php
if (update_option('acme-option', $values)) {
$this->displayAdminNotice(
'notice notice-success',
'The options were updated successfully!'
);
}
Som du kan se använder den här funktionen inbyggda WordPress-hooks, faciliteter för PHP, och skapar även en metod som kan enhetstestades vilket spelar roll om du siktar på att skriva testbara webbapplikationer i WordPress.
Och även om inte, har du ett enklare sätt att hålla din kod lite mer DRY än den var tidigare.