In WordPress begrijpen en werken met metagegevens

Tot nu toe hebben we in deze serie gekeken naar de belangrijkste inhoudstypen in WordPress. Maar hoe zit het met de aanvullende gegevens over al die inhoud? 

Dat is waar metadata in het spel komt.

Zoals ik in een eerder deel van deze serie behandelde, heeft WordPress vier hoofdinhoudstypen die het in vier databasetabellen opslaat:

  • posts
  • gebruikers
  • opmerkingen
  • koppelingen

De eerste drie van deze kunnen ook metadata toegewezen krijgen, en elk heeft zijn eigen metadatatabel in de database om deze op te slaan.

Wat is Metadata?

Metagegevens kunnen worden beschreven als gegevens over gegevens. Wikipedia definieert twee soorten metadata:

Structurele metadata gaat over het ontwerp en de specificatie van datastructuren en wordt beter "data over de containers met data" genoemd; beschrijvende metadata, aan de andere kant gaat het om individuele gevallen van toepassingsgegevens, de gegevensinhoud.

Door deze definitie gebruikt WordPress beschrijvende metadata. Wat we definiëren als gegevens in WordPress en wat kan worden gedefinieerd als metagegevens is een beetje wazig en komt niet direct overeen met wat is opgeslagen in de metadatatabellen. Bijvoorbeeld:

  • Voor berichten, post_type is een voorbeeld van metadata, maar het is opgeslagen in de wp_posts tafel
  • Taxonomietermen, categorieën en tags kunnen ook los worden gedefinieerd als metadata, maar deze worden volledig apart opgeslagen, in hun eigen databasetabellen.
  • Post metagegevens zoals aangepaste velden en extra metadata toegevoegd via plug-ins wordt opgeslagen in de wp_postmeta tafel, zoals je zou verwachten.

Het is dus gemakkelijker om metadata in WordPress te denken, niet volgens de strikte definitie van de term, maar als de gegevens die zijn opgeslagen in de drie metadatatabellen.

De metadatatabellen

WordPress gebruikt drie databasetabellen voor metadata:

  • wp_postmeta slaat metadata op over berichten (inclusief bijlagen, items van het navigatiemenu en herzieningen)
  • wp_commentmeta slaat metadata op over opmerkingen
  • wp_usermeta slaat metadata over gebruikers op

Het enige objecttype in WordPress dat geen metadata bevat, is de link.

De metadatatabellen zijn allemaal bijna identiek in die zin dat ze slechts vier velden hebben:

  • ID is de ID van het bericht, de gebruiker of de opmerking waarop de metagegevens betrekking hebben
  • Meta-ID verwijst naar de ID van de metadata-record
  • Sleutel is de meta-sleutel (die vaak wordt gedupliceerd tussen verschillende records)
  • Waarde is de metawaarde (die meestal uniek is)

WordPress kan deze structuur gebruiken om grote hoeveelheden metadata op te slaan met een eenvoudige structuur. Dit betekent dat de functies die u gebruikt voor het weergeven en opvragen van metagegevens voor berichten, gebruikers en opmerkingen erg op elkaar lijken.

Metadata opgeslagen door WordPress

De metagegevens die in een individuele WordPress-installatie zijn opgeslagen, verschillen van de metagegevens die in een andere installatie zijn opgeslagen, omdat plug-ins en thema's hun eigen metagegevens kunnen toevoegen en omdat u in sommige sites specifieke metagegevens moet definiëren, terwijl u in andere niet zult werken.. 

Maar laten we eens kijken naar enkele van de meer gebruikelijke soorten metadata:

  • Aangepaste velden. Deze zijn van toepassing op berichten die zijn opgeslagen in de wp_postmeta tafel. U kunt ze toevoegen met behulp van de standaard Aangepaste velden-interface of door uw eigen metaboxen te maken in de schermen voor het bewerken van berichten. Dit kan met name handig zijn als u wilt dat gebruikers metadata kunnen toevoegen aan een specifiek berichttype en u de interface zo gebruiksvriendelijk mogelijk wilt maken.
  • Metadata van de gebruiker. De wp_usermeta tabel slaat metadata op over de meeste gebruikers, zoals rollen, mogelijkheden, dashboardinstellingen en zelfs voor- en achternamen.
  • Metadata toegevoegd door plug-ins en thema's. Plug-ins met commentaarfunctionaliteit zoals Akismet zullen metadata toevoegen aan de wp_commentmeta tabel, terwijl plug-ins waarmee u metagegevens aan berichten kunt toevoegen, zoals SEO-plug-ins, records toevoegen aan de wp_postmeta tafel. Je zou theoretisch metadata kunnen toevoegen via je thema, maar het is logischer om dit in een plug-in te doen, omdat het over het algemeen gerelateerd is aan functionaliteit en niet wordt weergegeven.

Natuurlijk is de lijst niet beperkt tot deze types. Alle gegevens over berichten, opmerkingen of gebruikers die niet in hun hoofddatabasetabellen kunnen worden opgeslagen, worden opgeslagen in de relevante metadatatabellen.. 

Als u een nieuw veld toevoegt voor het opslaan van gegevens, moet u altijd deze tabellen gebruiken en niet de kerntabellen.

Toegang tot en uitvoer van metagegevens

WordPress heeft een metadata-API die u gebruikt om metadata toe te voegen, te wijzigen, te verkrijgen en te verwijderen. Er zijn een aantal functies die specifiek zijn voor elk type metagegevens dat u gebruikt om metagegevens in uw sjabloonbestanden uit te voeren: u moet deze gebruiken in plaats van generieke metagegevensfuncties.

De metagegevens API-functies voor elk inhoudstype zijn zeer vergelijkbaar en hebben dezelfde parameters:


Metadata toevoegen Metadata verkrijgen Metadata updaten Metadata verwijderen
berichten add_post_meta () get_post_meta () update_post_meta () delete_post_meta ()
gebruikers add_user_meta () get_user_meta () update_user_meta () delete_user_meta ()
Comments add_comment_meta () get_comment_meta () update_comment_meta () delete_comment_meta ()
parameters $ post_id, $ meta_key, $ meta_value, $ unieke (Optioneel) $ post_id, $ meta_key, $ enkelvoudige (Optioneel), 
$ post_id, $ meta_key, $ meta_value, $ prev_value (Optioneel) $ post_id, $ meta_key, $ meta_value (Optioneel)

Deze functies kunnen worden gebruikt in uw sjabloonbestanden en plug-ins, bijvoorbeeld in de sjabloon voor één bericht van uw thema, u zou het volgende kunnen gebruiken om metagegevens over het bericht uit te voeren:

Dit is slechts een heel eenvoudige manier om wat metadata uit te voeren - er zijn nog veel meer mogelijkheden, waarvan ik later in deze serie zal bespreken.

Samenvatting

WordPress gebruikt drie metadatatabellen om gegevens over drie inhoudstypen op te slaan: berichten, gebruikers en opmerkingen. Deze tabellen worden gebruikt voor alles dat niet in de kern is opgeslagen wp_posts, wp_users en wp_comments tabellen en zijn de tabellen waar u gegevens naartoe moet schrijven als u nieuwe velden toevoegt via thema's of plug-ins. De drie tabellen werken op vrijwel identieke manieren en hebben zeer vergelijkbare functies die u kunt gebruiken om metadata toe te voegen, bij te werken, te verwijderen en op te halen.

Zoals ik hierboven al zei, kunnen taxonomietermen worden gezien als een ander type metadata in WordPress, en dit zijn de dingen die ik in het volgende deel van deze serie zal behandelen.