Begrip en werken met taxonomieën en voorwaarden in WordPress

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!

Definities

taxonomieën

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
  • label
  • link categorie

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.

Voorwaarden

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.

Hoe WordPress Taxonomieën en voorwaarden opslaat

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 tabel wp_terms

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 term
  • naam
  • naaktslak
  • term_group is een veld dat momenteel niet wordt gebruikt door WordPress, dus u kunt het veilig negeren.

De tabel wp_term_taxonomy

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 tabel
  • term_id staat voor de ID van de term, gekoppeld aan zijn record in wp_terms
  • taxonomie is de naam van de taxonomie waarin de term voorkomt
  • Omschrijving
  • ouder verwijst naar de bovenliggende term van de term, als de taxonomie hiërarchisch is en er een is
  • tellen is het aantal posts met de term

In 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 tabel wp_term_relationships

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 tafel
  • term_taxonomy_id is gekoppeld aan hetzelfde veld in de wp_term_taxonomy tafel
  • term_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.

Samenvatting

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.