Op dit punt in deze serie hebben we de basis gelegd voor onze plug-in, een aangepaste haak gedefinieerd en een perpetuumaal bericht ingeplugd om te laten zien hoe we kunnen profiteren van de haak.
Wat we hebben niet Gereed is echter verschillende berichttypen implementeren, gebruikersinvoer toestaan en berichten weergeven op basis van het resultaat van de invoer die de gebruiker heeft opgegeven.
Maar voordat we dat doen, moeten we ondersteuning toevoegen voor de verschillende berichttypen, een klasse-interface die elk type bericht ondersteunt, en de datastructuren die nodig zijn om dergelijke berichten op te slaan..
Ik kijk er naar uit om deze zelfstudie voort te zetten, maar er zijn een paar dingen die we moeten beoordelen voordat we teruggaan naar de broncode. Zorg ervoor dat op uw systeem de volgende software is geïnstalleerd:
En als u op zoek bent naar een alles-in-één oplossing, vergeet dan niet om MAMP eens te proberen.
Zoals eerder vermeld, zitten we midden in deze serie. Als je een van de vorige tutorials hebt gemist, hier is wat we tot nu toe hebben behandeld:
En dit is wat we zullen bekijken in de laatste tutorial:
Maar nu hebben we ander werk om ons te concentreren.
Als we weer aan het werk gaan (en zoals we in vorige tutorials hebben besproken), zullen we tijdens dit deel van de serie naar de volgende implementatie kijken:
In deze zelfstudie beginnen we onze instellingsversie te implementeren door ondersteuning voor fouten en succesberichten toe te voegen en enkele punten over beveiliging te bespreken.
In het laatste artikel zijn we begonnen met het werken met Settings Messenger, maar alleen voor zover het een functie instelt die altijd een succesmelding zal weergeven wanneer onze aangepaste pagina wordt geladen.
In deze zelfstudie gaan we ondersteuning toevoegen voor fouten, waarschuwingen en succesboodschappen. We gaan ze ook allemaal op het scherm weergeven, zodat we een idee krijgen van hoe de messenger zal werken.
Daarnaast gaan we nog een wijziging toevoegen die ondersteuning toevoegt voor het afwijzen van de kennisgevingen naar goeddunken van de gebruiker.
Met dit als ons plan voor het werk dat we in deze tutorial moeten doen, laten we aan de slag gaan.
Onthoud dat het hele punt van Settings Messenger is om een manier te definiëren waarop we kunnen werken met aangepaste berichten, aangepaste hooks en de native WordPress API voor het weergeven van berichten in de context van het WordPress-beheergebied.
Om dit te doen, gaan we het werk uitbreiden dat we in de vorige tutorial hebben gedaan en ons werk vanaf dat punt blijven uitbreiden.
We zijn begonnen met het succesbericht in de vorige zelfstudie. Laten we verder gaan en daarmee verder gaan. Op dit moment hebben we een hardgecodeerde methode die een enkele methode weergeeft:
U hebt met succes een aangepast succesbericht weergegeven.
Idealiter willen we een gegevensstructuur introduceren die meerdere berichten ondersteunt, een functie die ons toegang geeft om desondanks veel berichten toe te voegen, en een functie waarmee we alle succesberichten kunnen weergeven.
Eerst beginnen we met een array. Dit wordt een privékenmerk van de klasse en wordt geïnitialiseerd in de constructor. Het eerste deel van de Settings_Messenger
zou er nu als volgt uit moeten zien:
success_messages = array ();
En zoals je kunt zien, hebben we precies gedefinieerd wat we hebben gezegd, behalve dat we geen methode hebben gedefinieerd voor het toevoegen van onze eigen berichten, en we hebben geen bericht gedefinieerd voor het weergeven van onze berichten.
Dus laten we dat nu doen. Laten we eerst een methode toevoegen waarmee we onze eigen berichten kunnen toevoegen:
success_messages [] = sanitize_text_field ($ bericht);
Merk op dat we hier gebruiken sanitize_text_field
om de gegevens te zuiveren die in de array gaan. Je kunt de ontsmetting zo strikt of zo ontspannen maken als je wilt. Ik heb gekozen voor deze specifieke methode omdat het helpt het punt over te brengen zonder van het punt van de zelfstudie af te wijken.
Laten we nu een methode definiëren waarmee we de berichten aan de voorkant kunnen weergeven:
success_messages)) retour; $ html = ""; $ html. = ''; $ allowed_html = array ('div' => array ('class' => array (),), 'ul' => array (), 'li' => array (),); echo wp_kses ($ html, $ allowed_html);'; foreach ($ this-> success_messages as $ message) $ html. = "
'; $ html. = '- $ message
"; $ html. = '
Toegegeven, deze methode kan worden gerefactored, en ik zal dit bespreken in de conclusie van deze post.
Laten we dit voorlopig nog eens uittesten. Probeer de volgende code in de tutsplus-maat-message.php
bestand en laad vervolgens het beheerdersscherm dat we tot nu toe in de serie hebben gebruikt opnieuw.
in het(); $ messenger-> add_success_message ('Dit is een testbericht'); $ messenger-> add_success_message ('Dit is ook een testbericht.');
Als alles goed is geïmplementeerd, zou u zoiets als dit moeten zien:
Gelukkig is het toevoegen van de volgende twee berichttypen erg vergelijkbaar met wat we in deze sectie hebben gedaan.
Ondersteuning toevoegen voor waarschuwingsberichten zal bijna precies hetzelfde zijn als wat we eerder hebben gedaan; In plaats van een naam te geven aan onze array en gerelateerde functies die iets te maken hebben met succes, geven we ze echter een naam die te maken heeft met waarschuwingen.
Dus laten we eerst de array toevoegen om onze berichten te bevatten:
success_messages = array (); $ this-> warning_messages = array ();
Laten we dan de functies toevoegen die ons toelaten om waarschuwingen aan de messenger toe te voegen:
warning_messages [] = sanitize_text_field ($ message);
En tot slot, laten we een functie toevoegen om de functie indien nodig weer te geven (merk op dat we de functie gebruiken kennisgeving-waarschuwing
klassenaam bij het maken van de div
element):
warning_messages)) return; $ html = ""; $ html. = ''; $ allowed_html = array ('div' => array ('class' => array (),), 'ul' => array (), 'li' => array (),); echo wp_kses ($ html, $ allowed_html);'; foreach ($ this-> warning_messages as $ message) $ html. = "
'; $ html. = '- $ message
"; $ html. = '
Merk op dat hoe je ervoor kiest om deze specifieke reeks berichten weer te geven, aan jou is. U kunt ervoor kiezen om dit samen met de succesberichten weer te geven, of u kunt ervoor kiezen om dit op een volledig afzonderlijke manier weer te geven.
Voor deze zelfstudie houd ik het eenvoudig en geef ik alleen het waarschuwingsbericht tegelijk weer. Dus ik zal de volgende regel code toevoegen aan het hoofd plugin-bestand:
add_warning_message ('Warning! Danger Will Robinson!');
Ik zal de haak bijwerken in de init-methode van de Settings_Messenger
:
En dan vernieuw ik de pagina. Ervan uitgaande dat u alle bovenstaande code correct hebt gevolgd, zou u iets bijna als volgt moeten zien:
Als dit niet het geval is, controleert u uw code of downloadt u het projectbestand dat aan deze zelfstudie is gekoppeld en gaan we van daaruit verder.
Foutmeldingen
Eindelijk, laten we hetzelfde doen voor onze foutmeldingen. We herhalen precies wat we in de bovenstaande secties hebben gedaan, dus dit zou op dit punt een beetje een tweede natuur moeten worden.
Eerst moeten we een attribuut toevoegen dat de array bevat waarin we onze foutmeldingen zullen opslaan:
success_messages = array (); $ this-> warning_messages = array (); $ this-> error_messages = array ();Ten tweede moeten we een functie toevoegen die ons in staat stelt om toe te voegen aan onze lijst met fouten:
error_messages [] = sanitize_text_field ($ bericht);En dan moeten we ze kunnen weergeven:
error_messages)) retour; $ html = ""; $ html. = ''; $ allowed_html = array ('div' => array ('class' => array (),), 'ul' => array (), 'li' => array (),); echo wp_kses ($ html, $ allowed_html);'; foreach ($ this-> error_messages as $ message) $ html. = "
'; $ html. = '- $ message
"; $ html. = 'Om uw eigen berichten toe te voegen, gaat u terug naar het hoofdinvoegbestand en voegt u de volgende code toe:
add_error_message ('Geloof wat je wilt, maar noch jij noch ik zijn speciaal'); $ messenger-> add_error_message ('In mijn leven, terwijl ik mijn zin aan het maken was, stelde ik altijd de vraag, ben ik de krachtigste persoon in de kamer?'); $ messenger-> add_error_message ('Mensen zeiden altijd dat ik opgroeide dat het nooit over de bestemming ging. Het gaat over de reis. Maar wat als de bestemming jou is?');Werk vervolgens het
in het
functie in deSettings_Messenger
, en je zou zoiets moeten zien als je de pagina ververs:En dat is hoe u aangepaste berichten toevoegt aan uw beheerpagina met behulp van aangepaste haken. Maar we hebben nog één ding te introduceren voordat we dit artikel inpakken.
Meldingen negeren
Voordat we besluiten, wil ik laten zien hoe we onze berichten kunnen laten verdwijnen of, eenvoudiger gezegd, kunnen worden verwijderd door de gebruiker. Om dit te doen, kunnen we gebruikmaken van functionaliteit die al in WordPress is ingebouwd.
Omdat we gewoon bezig waren met de foutmeldingen, ga ik de foutmeldingen gebruiken als een voorbeeld. Wanneer u de HTML voor de foutmeldingen bouwt, voegt u een andere klassenaam toe aan de
div
element dat de boodschap (pen) bevat.Dat wil zeggen, toevoegen
is-afgezet kunnen
:"; $ html. = '
Makkelijk genoeg, is het niet? U krijgt een pictogram waarmee de gebruiker erop kan klikken en wanneer dit het geval is, verdwijnt het bericht.
Dat is een mooie functionaliteit die goed past in de WordPress-gebruikerservaring voor heel, heel weinig werk aan onze kant.
Nu hebben we een redelijk functioneel Settings_Messenger
. We kunnen succesberichten, foutmeldingen en waarschuwingsberichten toevoegen. We kunnen berichten negeren. We kunnen dit allemaal beheren, los van alles wat WordPress doet.
Maar als je een van mijn eerdere tutorials hebt gelezen, weet je dat ik geen fan ben van het hebben van gedupliceerde code. Noch ben ik fan van het feit dat een klas veel dingen doet. En, helaas, dat is precies wat we hier doen.
Voor deze tutorial ben ik niet van plan de code in dit voorbeeld te refactoren. We zijn al eerder door dit soort materiaal heen gelopen. Verder is het doel van wat we doen, laten zien hoe met aangepaste foutmeldingen te werken, niet hoe we de meest geavanceerde object-georiënteerde technieken die we kunnen toepassen kunnen toepassen (hoewel dat leuk zou zijn, toch?).
Afhankelijk van de feedback die ik ontvang voor deze serie, zullen we deze misschien opnieuw bekijken en opnieuw beoordelen, zodat we kunnen zien hoeveel werk kan worden gedaan en hoeveel principes kunnen worden toegepast.
Terwijl je wacht tot de volgende tutorial wordt gepubliceerd, merk ik dat ik ook altijd graag vragen beantwoord via de reacties, en je kunt ook mijn blog bekijken en me volgen op Twitter. Ik praat meestal ook over softwareontwikkeling binnen WordPress en tangentiële onderwerpen.
Download tot die tijd de beschikbare broncode, vergelijk die met wat we hier hebben en zorg ervoor dat u deze op uw lokale computer uitvoert, zodat u bekend bent met wat er overblijft als we naar het laatste deel van deze serie gaan.