Taxonomieën zijn wat WordPress buiten een eenvoudig blogplatform en in de rijken van een CMS brengt.
Maar hoe worden ze opgeslagen in de database?
Taxonomieën en voorwaarden zijn een krachtige WordPress-functie waarmee u veel meer flexibiliteit aan uw sites kunt toevoegen. Ze zijn gerelateerd aan twee andere inhoudstypen: berichten en links, en de databasestructuur betekent dat dit een een-op-veel relatie is, waarbij een bericht meerdere termen kan hebben over meerdere taxonomieën en een term kan worden toegewezen aan meerdere berichten of koppelingen.
Ik zal beginnen met het definiëren van hen, zoals zoals zoveel dingen in WordPress, de terminologie kan verwarrend zijn!
Een taxonomie is een systeem van categoriseren of classificeren van dingen, normaal hiërarchisch. De beroemdste taxonomie is de Linnean-taxonomie die wordt gebruikt om levende wezens te classificeren.
In WordPress worden taxonomieën gebruikt om uw gegevens te classificeren en te groeperen in sets en subsets.
WordPress wordt geleverd met drie ingebouwde taxonomieën:
Categorieën en tags lijken een beetje op berichten en pagina's omdat ze hetzelfde type inhoud (taxonomieën) zijn, maar zich standaard anders gedragen, omdat categorieën hiërarchisch zijn en tags niet.
De taxonomie van de linkcategorie werkt op een vergelijkbare manier als tags en zou theoretisch voor elk objecttype kunnen worden gebruikt, maar wordt standaard niet weergegeven in het postbewerkingsscherm en bevindt zich in het koppelingsbewerkingsscherm als koppelingen zijn ingeschakeld.
U kunt ook zoveel extra taxonomieën toevoegen als u wilt met aangepaste taxonomieën. Deze gedragen zich dan op dezelfde manier als categorieën en tags en hebben termen. Elk van uw taxonomieën heeft dan dezelfde status als een van de ingebouwde taxonomieën. Dit is vergelijkbaar met een vergelijking tussen berichten en aangepaste berichttypen.
Elke taxonomie heeft termen die u gebruikt om uw gegevens te sorteren. Een categorie is slechts een term in de categorie taxonomie en een tag is een term in de tagtaxonomie. Wanneer u taxonomieën maakt, maakt u vervolgens termen voor uw taxonomieën via het WordPress-dashboard of met de functie wp_insert_term ().
Voorwaarden kunnen zeer krachtig zijn in combinatie met aangepaste query's: u kunt aangepaste sjabloonbestanden maken in uw thema's of plug-ins om berichten met meerdere termen weer te geven, te sorteren op termen, termen te identificeren voor verschillende taxonomieën en nog veel meer.
Zoals ik heb beschreven in de zelfstudie over relaties tussen gegevens, gebruikt WordPress een veel-op-veel-relatie. Deze relatie wordt gemaakt door drie tabellen te gebruiken:
wp_term_relationships
wp_term_taxonomy
wp_terms
Deze tabellen worden hieronder weergegeven, samen met de tabellen waaraan ze zijn gekoppeld, wp_posts
en wp_links
:
Laten we eens kijken naar elk van de tabellen en hoe het werkt.
De wp_terms
tabel slaat alle afzonderlijke termen op voor uw categorieën, tags, koppelingscategorieën en aangepaste taxonomieën. Het heeft slechts vier velden:
term_id
is de unieke ID voor de termnaam
naaktslak
term_group
is een veld dat momenteel niet wordt gebruikt door WordPress, dus u kunt het veilig negeren.De wp_term_taxonomy
tabel bevat meer gegevens over termen en de taxonomieën waar ze deel van uitmaken. Het heeft zes velden:
term_taxonomy_id
slaat een ID op voor de record in deze tabelterm_id
staat voor de ID van de term, gekoppeld aan zijn record in wp_termstaxonomie
is de naam van de taxonomie waarin de term voorkomtOmschrijving
ouder
verwijst naar de bovenliggende term van de term, als de taxonomie hiërarchisch is en er een istellen
is het aantal posts met de termIn veel WordPress-installaties zal er één record zijn in de wp_term_taxonomy
tabel voor elke term in de wp_terms
tabel, maar in sommige gevallen hebt u voor elke term meer dan één record. Dit gebeurt wanneer u twee termen met dezelfde naam en naaktslak in verschillende taxonomieën maakt, en dat betekent dat u een query kunt maken om berichten met die term in meerdere taxonomieën uit te voeren..
Dit betekent dat de relatie tussen deze twee tabellen één-op-veel is: één record in de wp_terms
tabel kan worden gekoppeld aan meerdere records in de wp_term_taxonomy
tabel, maar elk record in wp_term_taxonomy
is alleen gekoppeld aan één record in wp_terms
.
De wp_term_relationships
tabel is cruciaal bij het creëren van de veel-op-veel-relatie tussen objecten en termen. Het heeft slechts drie velden:
object_id
is gelinkt aan post_id
in de wp_posts
tafel of LINK_ID
in de wp_links
tafelterm_taxonomy_id
is gekoppeld aan hetzelfde veld in de wp_term_taxonomy
tafelterm_order
is de volgorde waarin termen aan een object zijn toegevoegd. Dit wordt alleen gebruikt als u hebt opgegeven dat het sorteerargument waar is bij het registreren van de taxonomie: de standaardwaarde is false en de standaardwaarde voor dit veld is 0.Omdat elk object gerelateerd kan zijn aan meerdere records in de wp_term_relationships
tabel, en zo kan elke term, dit creëert de veel-op-veel-relatie.
De relatie tussen objecten (zoals berichten en links) en termen is een zeer krachtige, deels omdat het de enige veel-op-veel relatie is die door WordPress wordt gebruikt.
Als u begrijpt hoe deze relatie werkt en waar de belangrijkste gegevens worden opgeslagen, kunt u beter begrijpen hoe taxonomieën en termen werken en kunt u de bijbehorende functies gebruiken.