Bortsett från den sammanfattning som vi kommer att tillhandahålla som den sista artikeln i den här serien är detta den senaste förklaringen av WordPress-kodningsstandarderna som vi kommer att täcka i den här serien.
Vi kommer att täcka nyanser av databasfrågor och hur du formaterar SQL inom ramen för din kod.
Självklart skulle det inte vara utan sin egen inställning: Generellt sett finns det API som redan är tillgängliga som kan förhindra oss från att behöva skriva SQL på egen hand. Men dessa API: er tar inte upp varje enskilt fall som vi faktiskt behöver.
Hur kan utvecklare som implementerar API-er vet hur exakt vad och hur vi ska bygga något?
Därför ska vi titta på API: erna som är tillgängliga för att exekvera databasfrågor, hur man använder dem och hur du definierar våra egna frågor när API: erna blir korta.
Som nämnts i introduktionen av denna artikel finns det ett antal API som gör det möjligt för oss att skapa egna frågor utan att behöva skriva SQL.
Anledningen till att det är viktigt att bli bekant och att lära sig dessa API är så att koden du skriver kommer att skrivas ovanpå abstraktionsnivån som tillhandahålls av WordPress för att se till att frågorna är optimerade som möjligt (med den nuvarande versionen).
Dessutom ökar det sannolikheten att någon kod som du skriver idag kommer att vara kompatibel med framtida versioner av WordPress, främst för att det igen skrivs mot abstraktionsnivån som tillhandahålls av WordPress.
Om tabellen scheman ändras, parametrar kartlägger till olika klausuler i SQL, etc. behöver du inte oroa dig för det eftersom API: n ska ta hand om det för dig.
Än sen då är API-förfrågningarna som WordPress definierar?
WP_Query
är avsedd att användas för att fråga information om vilken posttyp som helst och dess relaterade författare, kategori, taxonomier, typ, status och så vidare attribut.WP_User_Query
är avsedd att användas när vi behöver hämta information från användarbordet och usermeta bordet. Det gör det också möjligt för oss att arbeta med roller, anpassade fält och mer.Det finns också andra WordPress API-metoder som gör det väldigt lätt att fånga grejer från olika databastabeller, varav några inte ens kräver ett betydande antal argument:
get_post_meta
hämtar metadata associerad med ett visst post-ID. Det kan hämta alla metadata eller värdet för en viss nyckel.get_comment_meta
hämtar metadata som är associerade med ett givet kommentar-ID. Det kan hämta alla metadata eller värdet för en viss nyckel.get_user_meta
hämtar metadata som är associerade med ett visst användar-ID (börjar du se ett tema här?). Det kan hämta alla metadata eller värdet för en viss nyckel.Observera att syftet med den här artikeln inte är att dyka djupt i varje av dessa API (och det finns fler av dem) - bara för att göra dem kända för dem som inte tidigare använt dem och att ge en kort definition när de kan användas.
I sista hand, dessa är de API som du bör undersöka först innan du skriver din egen SQL. För vad det är värt talar jag här från erfarenhet här: Det har varit tillfällen där jag har skrivit kod (eller till och med blogginlägg) som har blivit busted eftersom de inte använde de bästa metoderna för att fråga databasen.
Men som tidigare nämnts kan dessa API: er inte förutsäga Allt fall där vi behöver skriva våra databasfrågor. I dessa situationer tillhandahåller WordPress ett objekt som gör att vi kan direkt interagera med databasen.
$ wpdb
Det får oss till $ wpdb
. Väsentligen, $ wpdb
är ett objekt som är tillgängligt i WordPress som tillåter oss att gränssnitt direkt med databasen. Det betyder att vi kan skriva rå SQL och få den att köras mot den underliggande databasen.
Utöver det kan vi välja hur vi vill att data returneras: arrayer, objekt, ibland enskilda värden och så vidare. Faktum är att objektet erbjuder möjligheten att utföra följande funktioner:
VÄLJ
variabler, rader, kolumner och generiska resultatFÖRA IN
raderUPPDATERING
befintliga raderKanske är det största problemet med att introducera raw SQL i ditt projekt att du öppnar ditt projekt upp mot potentiellt skadligt beteende. Även om du kan göra detta fall för en databaslogik, är sanningen att API: er ska göra ett bra jobb för att skydda oss från någonting så.
Generellt sett gör de det.
Men $ wpdb
är heller inte befriad från det. Det finns specifika sätt att ansluta till databasen så att du kan skydda dina frågor mot SQL-injektion.
Att upprepa en punkt från kodningsstandarderna:
Om du måste röra databasen, ta kontakt med vissa utvecklare genom att skicka ett meddelande till wp-hackers mailinglistan. De kanske vill överväga att skapa en funktion för nästa WordPress-version för att täcka den funktionalitet du vill ha.
Så kort sagt, om API: n saknar vad du behöver, då $ wpdb
kan vara ditt bästa alternativ, men jag rekommenderar bara att använda den om du har uttömt resten av dina alternativ.
Vid denna tidpunkt har vi granskat kodningsstandarderna på detaljerad nivå som jag hoppas utrustade med information som du inte tidigare hade när du startade den här serien.
För att avsluta det här inlägget, den största ta bort som jag vill att alla ska få är det här:
Om du gör det, bör du ha dina baser täckta.
I den slutliga artikeln i den här serien har vi en snabb guide som sammanfattar allt som vi har diskuterat i serien.