I en ny serie pratade vi allt om hur vi kunde arbeta med metadata för flera av de stora klasserna i WordPress.
Detta inkluderade:
Under hela serien pratade vi lite om hur WordPress 4.4 introducerade idén om termometadata. Jag ville inte presentera konceptet inom ramen för den serien eftersom det var beroende av att förstå något som ofta ger nybörjare lite problem.
Det är vad detta serien syftar till att ta itu med.
I WordPress går begreppen taxonomier och termer samman. Jag ska utarbeta mer om detta på ett ögonblick. Men för att fungera korrekt med termometadata anser jag att det är viktigt att förstå taxonomier, termer och deras relationer. Annars, hur annars kan vi få en slutlig förståelse för vad vi gör när vi jobbar med dem på programmatisk nivå?
I den här artikeln med två artiklar kommer vi att titta på taxonomier, vad de är, vilken roll de spelar i WordPress och deras förhållande till termer. Därefter kommer vi att uppmärksamma våra villkor och hur vi ska arbeta med API-metadata för ny term.
Om du inte har läst tidigare serier rekommenderar jag att du gör det så att det lägger grund för hur API: en vi ska utforska fungerar. Om du dock väljer att inte göra det, är det okej. Denna serie ska täcka allt du behöver veta.
Såsom definieras i Codex:
I WordPress är en "taxonomi" en grupperingsmekanism för vissa inlägg (eller länkar eller anpassade posttyper).
Visst är det inte ett ord som du ofta hör och ibland kommer andra att bli förvirrade när man talar om taxonomier och villkor. Det innebär att de ska använda en exempelfras som ett exempel på en taxonomi men vad de gör, använder i så fall en term. Jag kommer att beröra det på bara en liten bit.
Enkelt uttryckt, tänk på taxonomier som sätt att gruppera saker tillsammans. Utanför lådan skickas WordPress med två taxonomier: kategorier och taggar. Vi pratar om var och en mer i korthet.
Nu finns det ett tillvägagångssätt, åtminstone när det gäller WordPress: taxonomier kan vara hierarkiska eller icke-hierarkiska. Kanske är det vanligaste exemplet på ovanstående idé följande:
Och det är skillnaden mellan hierarkiska och icke-hierarkiska taxonomier. Det är enkelt, eller hur? De som stöder barn, som kategorier, är hierarkiska; De som inte stöder barn, som taggar, är icke-hierarkiska.
Med det arbete som vi ska göra i denna serie spelar detta inte särskilt någon roll än att hjälpa oss att få en djupare förståelse för vad detta språk betyder i samband med vår utvecklingsinsats.
Men när vi börjar programmatiskt skapa dessa enheter och lägga till metadata till dem, borde det inte vara någon förvirring om vad vi gör.
Vi har definierat taxonomi, men vad sägs om termer? Från Codex:
I WordPress är en term en klassificering, grupp eller delmängd av en taxonomi, där den senare kan vara en kategori, tagg eller anpassad taxonomi. Som standard har termen en titel, en slug och en beskrivning. Hierarkiska taxonomier som kategorier kan definiera en föräldraperiod.
Med tanke på vad vi har diskuterat hittills är det precis vad vi borde förvänta oss. Det vill säga villkor är associerade med taxonomier. Villkor har emellertid flera anmärkningsvärda aspekter för dem som vi borde vara medvetna om, särskilt om vi ska skapa dem eller arbeta med dem programmässigt.
Det vill säga villkoren består av:
Kom ihåg att om vi arbetar med en hierarkisk taxonomi, som en kategori, kan termen valfritt innehålla en föräldra term.
För att vara tydlig betyder det inte att en taxonomi inte har en uppsättning information relaterad till den. Till exempel kräver en taxonomi ett namn, en posttyp till vilken den är associerad och ett antal argument som ligger utanför ramen för detta artikel. Vi får se mer om detta i nästa artikel.
Relationen mellan taxonomier och termer är något symbiotisk, vilket innebär att man inte kan existera utan den andra. Detta gäller särskilt när det gäller hierarkiska taxonomier.
Först för de som är intresserade, tillhandahåller WordPress Codex ett diagram som förklarar förhållandet:
Till exempel kan du ha en Kategori taxonomi, men du måste ha minst en term som är associerad med den. Därför skickas WordPress med standard Okategoriserad termin.
Å andra sidan är det möjligt att skapa en Märka taxonomi men har inga taggar som finns i databasen.
Men, som utvecklare, kan vi ta det här ett steg längre? Det vill säga, även om alla dessa kan skapas programmässigt, har användarna möjlighet att skapa och lägga till dem också. Åtminstone om användargränssnittet visar ett alternativ för dem att göra det.
Fall i sak: När du tittar på användargränssnittet i WordPress har vi alla möjlighet att skapa kategorier och taggar.
Om du är en programmerare och du vill koppla in vissa taxonomier och villkor i databasen, har du möjlighet att göra det och förhindra att användare lägger till och tar bort dem från användargränssnittet.
Vi har lagt fram definitionerna av taxonomier och villkor samt skillnaderna mellan dem, men en fråga kvarstår: Varför behöver vi termometadata? Eller, kanske alternativt, vad är termen metadata?
Det är en bra fråga, och det är förmodligen en del av varför den här funktionen inte introducerades förrän WordPress 4.4. Intressant nog, introducerades biljetten för den här funktionen först för sex år sedan. Den primära motiveringen till biljetten (rak från Trac själv) säger:
För närvarande finns det inget särskilt sätt att lagra ytterligare data för taxonomi. Pluginutvecklare måste utveckla sin egen metod för att lagra denna data, t.ex. genom att lagra dem kodade i beskrivningsfältet eller använda set_option (). Det kommer att vara bra att lägga till nya funktioner för detta, t.ex. add_taxonomy_data () / get_taxonomy_data ().
Om du är en erfaren WordPress-utvecklare, så ger detta perfekt mening. Men inte alla av oss är upp till den nivån än, så vi är inte säkra på vilka fördelar det här köper oss.
Liksom alla andra API: er, tillåter vi oss att lagra information om vilken term som finns i databasen. Detta kan vara vad som helst relaterat till den tid då termen skapades, vem skapade termen eller hur många inlägg som taggats med ett visst begrepp, eller det låter oss associera en bild med en term.
Eftersom det stöder en nivå av godtycklig information är möjligheterna mycket breda vad vi kan göra med denna information. Och med början i nästa artikel kommer vi att se exakt det.
Vid denna tidpunkt borde du ha allt du behöver veta för att arbeta med taxonomier och villkor. Visst, du kommer sannolikt att behöva läsa igenom Codex ett par gånger eftersom du arbetar med en plugin, ett tema eller en anpassad lösning för en klient, men det är inte onormalt även för en erfaren utvecklare.
I nästa artikel ska vi titta på hur man arbetar med termometadata. Specifikt tittar vi på exempelkod, kopplar den till en av standardteman i WordPress och övervakar databasen när vi gör ändringar.
Under tiden, om du är intresserad av WordPress, mjukvaruutveckling eller skärningspunkten för de två, kom ihåg att kolla på min profilsida som innehåller länkar till alla kurser och handledning som jag har publicerat på Envato Tuts+.
För det andra, tveka inte att följa mig på Twitter på @tommcfarlin, där jag ofta pratar om och delar resurser relaterade till WordPress eller följer min blogg där jag skriver dagligen om det arbete jag gör med WordPress eller ämnen som är tangentiellt relaterade till det.
Slutligen, om du letar efter andra verktyg för att hjälpa dig att bygga ut din växande uppsättning verktyg för WordPress eller för att kod ska studeras och bli mer välbevandrad i WordPress, glöm inte att se vad vi har tillgängligt på Envato Market.
Tillså tveka inte att lämna frågor eller kommentarer nedan, och jag gör vad jag kan för att svara på var och en av dem.