WordPress Initialization Hooks Fördelar och vanliga misstag

I programmeringen är inmatning av data viktig eftersom det är där vi ställer in förutsättningarna för applikationen, såsom dess attribut, dess nödvändiga filer och data, dess anslutning till databasen och så vidare.

WordPress själv har en väldefinierad initialiseringsprocedur. Genom sidans livscykel brinner WordPress ett antal åtgärder, många av vilka vi har tagit fram i tidigare artiklar. För detta ändamål tillhandahålls en uppsättning initialiseringskrokar som naturligtvis används för att initiera applikationen innan den utför sin primära funktionalitet.

Som plugin och temautvecklare är det viktigt att förstå användarfall och Vanliga misstag av dessa initialiseringskrokar, för att bygga högkvalitativa applikationer.

I den här artikeln ska vi titta på vikten av WordPress-initieringskrokar och hur de används i olika scenarier.


Introduktion till initieringskrokar

WordPress erbjuder ett brett utbud av krokar som kan användas i plugin och temat utveckling.

I en typisk sidförfrågan exekveras alla åtgärdshooks i en viss ordning. Speciellt görs alla krokarna efter att kärnan WordPress-programmet har slutfört sin laddningsprocess.

Så initialisering krokar är vanligtvis vana vid, du gissade det, initiera processen i plugins och teman. Låt oss ta en titt på de tillgängliga i det krokar i WordPress, i följande ordning:

  • i det körs efter att WordPress har slutfört laddning men innan några rubriker skickas. Generellt används det av plugins för att initiera deras process.
  • widgets_init Används för att registrera sidpanel widgets i programmet. De register_widgetfunktionen utförs inom denna krok.
  • admin_init exekveras som den första åtgärden, när användaren kommer åt admindelen av WordPress. Generellt är det vanligt att initiera inställningar som är specifika för adminområdet.
Bortsett från dessa tre krokar, kallas en annan krok admin_bar_init, som körs efter administrationsfältet initialiseras. WordPress Codex ger inte en förklaring till denna krok, och inte många plugins använder den här kroken.

Du kan också granska hela körningsprocessen för WordPress-åtgärder i Codex.

WordPress kör varje krok i en viss ordning (som du kan se i Codex). Som sådan är det viktigt att överväga förekomstordningen vid användning av varje handtagskrok. Tänk på följande scenarier för att identifiera skillnaderna.

definiera admin_init Inuti i det Krok

Om det behövs kan vi definiera WordPress-krokar inom andra krokar. I en typisk förfrågan, i det krok körs före admin_init krok. Så låt oss försöka utföra något genom att placera admin_init inuti i det krok:

 add_action ('init', 'test_init'); funktion test_init () add_action ('admin_init', 'test_admin_init');  funktion test_admin_init () echo "Admin Init Inside Init"; 

Efter att ha kört den här koden får vi önskad utgång med hjälp av eko påstående.

definiera i det Inuti admin_init Krok

Låt oss se koden och utgången i det här scenariot där en tidigare krok definieras i en krok som kommer senare i körningsföljden.

 add_action ('admin_init', 'test_admin_init'); funktion test_admin_init () add_action ('init', 'test_init');  funktion test_init () echo "Init Inside Admin Init"; 

Här kommer vi inte att få någon produktion - detta förväntas - eftersom i det krok exekverar före admin_init krok och sålunda är den inte tillgänglig efter att ha definierat admin_init krok.

Som du kan se är det viktigt att förstå exekveringsproceduren för krokar för att bygga framgångsrika plugins. Order of occurrence är viktig för alla krokarna i WordPress.


Utforska The i det och admin_init krokar

Bland init krokarna, i det och admin_init är värt att utforska eftersom dessa två krokar används i stor utsträckning i många plugins. Användning av andra initialiseringskrokar är rak i jämförelse med dessa två krokar.

Som sådan kommer vi att titta på funktionaliteten hos i det och admin_init krokar.

De i det kroken exekveras i varje förfrågan för både Fronten på WordPress-webbplatsen samt baksidan.

De admin_init kroken exekveras efter Admin sektionen fullbordar sin laddningsprocess. Så den här kroken exekveras också på varje administratörsförfrågan. Användare måste vara inloggade för att dra nytta av den här kroken.

Eftersom båda dessa krokar exekveras på varje förfrågan måste vi planera funktionerna i genomförandet av dessa krokar, eftersom det kan påverka webbplatsens prestanda väsentligt..

Hur man använder i det krokar

Generellt är initieringskrokar tillgängliga i de flesta av de befintliga WordPress-pluginsna, och de är viktiga för hanteringen av behandlingen.

WordPress definierar inte vad vi borde och vad vi inte bör inkludera; Därför kan utvecklare göra mindre misstag som i sin tur kan leda till en stor prestandaförminskning. I det här avsnittet ska vi titta på hur vi effektivt kan använda båda i det och admin_init krokar.

Låt oss ta en titt på de bästa metoderna vid användning av init krokar.

De i det krok

  • Registrering av anpassade posttyper - WordPress rekommenderar användningen av i det krok för att registrera nya anpassade posttyper.
  • Initialisering av pluginkonfigurationer och inställningar - Plugin konfigurationer och inställningar måste definieras i varje förfrågan och det är därför en bra praxis att inkludera dem inuti denna krok.
  • Åtkomst till användarens inlämnade data (Använda $ _GET och $ _POST) - Vi kan fånga in användarens inlämnade data utan några åtgärder, men det rekommenderas att du använder i det krok eftersom det garanterar utförandet i varje förfrågan.
  • Lägger till nya omskrivningsregler - Vi kan definiera nya omskrivningsregler med hjälp av i det krok, men kom ihåg att dessa nya regler bara träder i kraft när vi spola omskrivningsreglerna.
  • Lägg till eller ta bort anpassade åtgärder - Plugins innehåller många anpassade åtgärder för att utvidga funktionaliteten. Det kommer att finnas scenarier där vi behöver lägga till nya anpassade åtgärder samt ta bort befintliga. Vid sådana tillfällen är det viktigt att genomföra dessa aktiviteter inom i det krok.
  • Ladda plugin-textdomänen - WordPress erbjuder flera språk stöd och sålunda får vi ladda filen som innehåller de översatta strängarna. Detta bör också placeras inuti i det krok.

De admin_init krok

  • Åtkomstkontroll - Det är viktigt att kontrollera behörigheterna för inloggade användare innan varje användare får tillgång till en viss uppsättning funktioner eller funktionalitet. admin_init är den första åtgärden att köra i adminområdet så att vi kan använda den för att hantera åtkomstkontroll.
  • Lägger till nya inställningar - Vi kan använda den här kroken för att lägga till nya inställningssidor eller inställningar i den befintliga WordPress-inställningspanelen.

Det finns många andra möjliga implementeringar med dessa krokar, men de funktionerna har egna krokar och det är inte nödvändigt att använda initieringskrokarna.

Vanliga misstag vid användning av initieringskrokar

Ofta hittar vi scenarier där utvecklare missförstår användningen av initieringskrokarna. Felaktig användning av nämnda krokar kan leda till allvarliga prestandaproblem (såväl som lågkvalitets plugins).

Låt oss identifiera de vanliga misstagen och hur man undviker dem:

  • Spolning omskrivningsregler - Det här är en resursintensiv operation där alla omskrivningsregler spolas och omarrangeras för att lägga till nya och för att ta bort onödiga regler. Många utvecklare spola omskrivningsreglerna inuti i det åtgärder och slutar skapa onödiga prestationsutgifter i varje förfrågan. Vi bör ställa in ett sätt att manuellt spola omskrivningsreglerna med en knapp eller spola reglerna om sällsynta aktiviteter, till exempel spara plugin-inställningar.
  • Åtkomst till databasen - Det är ett måste för att komma åt databasen för att tillhandahålla olika funktioner, men det är viktigt att förhindra onödiga databasanrop i initialiseringskrok eftersom det görs på varje förfrågan. För det ändamålet är det idealiskt att tilldela databashakar i funktionalitetsspecifika krokar för att undvika större prestanda.
  • Utför uppgraderingsrutiner - Plugins måste ha en uppgraderingsrutin för att uppgradera sina funktioner för nya versioner. Generellt använder utvecklarna init krokar för att kontrollera pluginversioner och inställningar innan du utför uppgraderingsprocessen. Vi kan låta användarna uppgradera pluginet genom att tillhandahålla en anpassad skärm istället för att automatiskt kontrollera varje begäran.
  • Använda init krokar istället för funktionalitet specifika krokar - Detta är det vanligaste misstaget som många utvecklare gör. Det finns ett brett utbud av krokar i WordPress som inriktar på olika, unika funktioner. Det är viktigt att använda funktionalitetsspecifika krokar för att undvika konflikter och göra koden utökbar. Krokar som i det och admin_init kan användas istället för specifika krokar så att utvecklare brukar använda dem utan att ha kunskap om sin fulla effekt. Några av de gemensamma scenarierna där utvecklare använder i det och admin_init krokar istället för de rekommenderade krokarna är följande:
    • admin_menu - Vi kan lägga till menysidor med add_menu_page fungera. Det rekommenderas att använda admin_menu krok för att skapa admin sidor. Men många utvecklare använder admin_init krok som den exekveras efter admin_menu krok.
    • wp_enqueue_scripts - Rekommenderat sätt att lägga till stilar och skript är att använda wp_enqueue_scripts krok. Men många utvecklare använder wp_enqueue_script inuti i det krok för att ladda skript och stilar.

Det finns många liknande situationer där utvecklare använder vanliga init-krokar istället för funktionalitetskrok och det bör förebyggas när det är möjligt.


Flytta framåt med initialiseringskrokar

WordPress-initieringskrokar spelar en viktig roll i plugin och temat utveckling. Många utvecklare missbrukar krokarna och skapar onödiga prestandakostnader. I denna artikel diskuterade vi rätt användning av dessa krokar såväl som vanliga misstag och hur man undviker dem.

Nu kan vi tillämpa samma teknik för att plugga specifika anpassade krokar. Många avancerade plugins använder sina egna handtagskrokar för att göra dem töjbara. För sådana plugins kan vi definiera plugin-specifika init-krokar för att låta utvecklare fokusera på initieringsuppgifterna på fördefinierade krokar istället för att använda dem överallt.

Du är välkommen att dela med dig av dina erfarenheter av korrekt användning av init krokar samt misstag vid användning av initieringskrokar. Ser fram emot att se vad du måste dela i kommentarerna!