Nybörjarens guide till WordPress-åtgärder och filter

När det gäller professionell WordPress-utveckling är det absolut nödvändigt att utvecklare förstår både handlingar och filter - det är viktigt att förstå WordPress-krokar.

Enkelt uttryckt är krokar som ger oss möjlighet att anpassa, utvidga och förbättra WordPress genom ett API i våra teman, plugins och andra anpassade utvecklingsinsatser.

Problemet är att dessa två funktioner i WordPress - förmodligen de viktigaste aspekterna av att utveckla för plattformen - antingen är mycket missförstådda eller helt ignoreras.

I det här inlägget ska vi titta på WordPress-livscykeln, förstå hur krokar fungerar och granska skillnaderna i åtgärder och filter så att vi inte bara blir bättre temat och / eller plugin-utvecklare men också har en djupare förståelse för hur WordPress fungerar.

Notera: Den här artikeln riktar sig specifikt till nybörjare, så om du är en erfaren utvecklare kan det vara lite av en uppdatering. dock om du är en nybörjare, var god och lämna frågor i kommentarfältet i slutet av posten.


WordPress Page Lifecycle

Innan vi faktiskt börjar prata om WordPress-krokarna, är det viktigt att förstå hur WordPresss livscykel fungerar.

En sidlivscykel är inget mer än en kombination av händelserna som sker från när en webbläsare begär en sida till när servern returnerar sidan till webbläsaren.

Låt oss exempelvis säga att du laddar upp en enda sida. Då, på hög nivå, kommer WordPress att göra något som följande:

  • Titta på det begärda sid ID
  • Fråga databasen för sidan med dess ID
  • Fråga databasen för eventuella tillhörande data (t.ex. kategorier, taggar, bilder, etc.)
  • Fråga databasen för de kommentarer som är associerade med den
  • Lämna tillbaka Allt av data till webbläsaren

Mallfilerna och samtalen till API-funktionerna är då ansvariga för återgivning, styling och positionering av data på skärmen.

Det låter enkelt, men om du tänker på några av de mest komplexa bloggar som du läser eller om du funderar på en del av det arbete du har gjort kan du börja förstå hur intensiv denna process kan vara.

Det här är naturligtvis också på den mest förenklade nivån. Detta inkluderar inte några cachemekanismer eller något av de avancerade ämnen som andra ofta diskuterar när man bygger WordPress-baserade projekt.

En populär WordPress-utvecklare Rarst - killen bakom queryposts.com - har sammanställt en relativt detaljerad grafik som visar WordPress-kärnbelastningen:

Do inte avskräckas om du inte kan följa ovanstående diagram. Jag har lagt den här helt enkelt som en referens. Det ultimata målet med denna session är att i slutet kan alla utvecklare förstå det.

Med det sagt, här är det viktigaste att förstå om krokar under WordPress-sidens lastlivscykel:

Medan WordPress kör sina serier av frågor och förbereder sig för att göra data tillbaka till webbläsaren ser det på alla anpassade krokar, det vill säga de åtgärder och filter som har skrivits och skickar data via dessa filter innan de returnerar data till webbläsaren.

Vid denna tidpunkt är det viktigt att definiera krokar och titta på skillnaderna mellan åtgärder och filter och hur de spelar in i hela livscykeln.


Allt om krokar

WordPress krokar refererar till två saker - handlingar och filter. Om du skulle titta på Codex-artiklarna på krokar ser du bara en kort sida som länkar till referenserna för både åtgärder och filter. Det är precis vad det borde vara för, för det är vilka krokar är.

Så här är hur man tänker på detta:

Krokar gör att vi bokstavligen kan koppla in delar av WordPress-livscykeln för att hämta, infoga eller ändra data, eller de tillåter oss att vidta vissa åtgärder bakom kulisserna.

Ganska coolt, rätt?

Men det finns två saker att förstå om detta:

  1. Åtgärder är annorlunda än filter.
  2. Du kan inte bara kasta en krok i en godtycklig genomförandepunkt. Det finns tillfällen under vilka vissa krokar eldar och optimala tider för att du ska kunna utnyttja det.

Med det sagt, låt oss först definiera åtgärder och filter, då granskar vi när vi ska skjuta vad.


Åtgärder

Så vad är åtgärder? Den enklaste definitionen är följande: Åtgärder indikerar att något har hänt. Det är allt. Men vad bra är den definitionen? Och hur får vi inte det förvirrat med händelserna?

Så här håller jag det rakt:

Åtgärder är händelser i WordPress-livscykeln när vissa saker har inträffat - vissa resurser är laddade, vissa faciliteter är tillgängliga och, beroende på hur tidigt åtgärden har uppstått, har vissa saker ännu inte laddats.

Eftersom vi har diskuterat WordPress-livscykeln är åtgärder i grunden vissa punkter under det liv där du kan presentera din egen funktionalitet.

Det betyder att du har möjlighet att få något att hända när en sida laddas.

Codex ger en bra resurs på de åtgärder som är inbyggda i WordPress samt den ordning i vilken de brinner. Bokmärke, hänvisa ofta och lära dig detta.

Det är grundläggande att lära sig hur man kopplar in i WordPress vid vissa punkter under genomförandet och gör det rätt ™.

Fall i sak: Jag ser ofta utvecklare som hakar i i det handling alltför ofta. Visst, det finns en tid för att göra detta. Men säg att du ville göra något precis innan du fick inlägg. Då skulle det vara meningsfullt att använda pre_get_posts krok i stället för i det, höger?

det är varför det är viktigt att förstå handlingar.


Filtrera alla saker

Filter är å andra sidan helt annorlunda än åtgärder. Liksom handlingar är de liknande punkter som uppstår under WordPress-sidans livscykel. men vad de do är annorlunda.

Så här definierar jag filter:

Filter är funktioner som WordPress skickar data igenom under vissa punkter i sidans livscykel. De är främst ansvariga för att avlyssna, hantera och returnera data innan de gör det till webbläsaren eller spara data från webbläsaren till databasen.

Antag för en stund att en webbplats besökare håller på att ladda ett inlägg. Från vad vi förstår av WordPresss livscykel, kommer WordPress att fråga databasen för det inlägget och sedan återställa det till webbläsaren. Innan du gör det, kommer det dock att köra data genom alla filter som har upprättats.

Vid denna tidpunkt kommer filtren att vidta åtgärder mot data som skickas till dem. Till exempel, säg att du ville lägga till en kort mening om författaren i slutet av innehållet. För att göra detta skulle du registrera en anpassad funktion med innehållet filtrera och lägg till din mening till innehållet.

På vilket sätt att göra detta ligger utanför ramen för denna artikel, men vi strävar efter att täcka detta i en framtida artikel i sessionen.

Precis som med åtgärder innehåller Codex en omfattande lista över tillgängliga filter. Och på samma sätt, Bokmärke, hänvisa ofta och lära dig detta.

När du har en gedigen förståelse av filter kan du börja manipulera datainsamling och serialisera av Doing It Right ™ istället för att kringgå WordPress API. Det ger ett kraftfullt, väldigt enkelt sätt att manipulera data.

det är varför det är viktigt att förstå filter.


Men när gör jag ... ?

Vid denna tid uppkommer alltid den oundvikliga frågan.

När använder jag vilken krok?

Och här är de råd jag brukar ge:

  • Använd åtgärder när du vill lägga till något på den befintliga sidan, t.ex. stilark, JavaScript-beroende, eller skicka ett mail när en händelse har hänt.
  • Använd filter när du vill manipulera data som kommer ut ur databasen innan du går till webbläsaren eller kommer från webbläsaren innan du går in i databasen.

Det är allt! Lätt nog, hoppas jag.


Slutsatser

Vid denna punkt rekommenderar jag starkt att du granskar följande resurser:

  • Plugin API som också ger en del bra information som också kan användas i Theme Development.
  • Handlingsreferensen
  • Filterreferensen

Vi planerar att fortsätta att köra flera inlägg i sessionen för att följa med den här artikeln, liksom Pippins artikel om extensible plugins, så var noga med att hålla reda på denna session för mer information om krokar.