Een onderdeel van wat WordPress tot een krachtige CMS-tool maakt, is de mogelijkheid om de wp_postmeta
tabel om aangepaste velden op te slaan. Deze aangepaste velden kunnen aanvullende informatie bevatten, zoals SEO-velden die door een SEO-plug-in zijn toegevoegd, of kunnen worden gebruikt om extra front-end content weer te geven.
Door deze aanvullende informatie aan velden toe te voegen, kunt u aangepaste query's maken om de weergave van uw inhoud te organiseren.
Leren werken met deze gegevens is een geweldige manier om kern-PHP-concepten te leren, waaronder arrays, loops en objecten. Om meester te worden in WordPress-metadata, moet je alle soorten arrays beheersen.
In deze reeks zelfstudies laat ik je verschillende manieren zien om met WordPress post-metadata en gebruikersmetadata te werken als concrete voorbeelden van hoe je met arrays kunt werken.
U leert het verschil tussen een geïndexeerde array en een associatieve array en hoe u multidimensionale arrays kunt begrijpen.
De meest technische definitie van post-metadata is alle informatie die is opgeslagen in de wp_postmeta
tafel. Standaard is dat niet veel, maar telkens als een plug-in of een thema een aangepast veld toevoegt, worden de gegevens die in dat veld zijn ingevoerd in de wp_postmeta
tafel.
Een goed voorbeeld zijn de SEO-velden die een SEO-plug-in toevoegt. Denk bijvoorbeeld aan een post-metabeschrijving. Dat veld wordt opgeslagen in de postmeta-tabel.
Daarnaast kunnen gebruikersprofielen in WordPress worden uitgebreid met aangepaste velden. In een relatie die spiegelt wp_posts
en wp_postmeta
, deze velden worden opgeslagen in de wp_usermeta
tafel - niet de wp_user
tafel.
In deze serie zullen we niet bespreken hoe we aangepaste velden in WordPress kunnen toevoegen - dat is helemaal zijn eigen onderwerp. Aangepaste velden kunnen in de berichteditor worden toegevoegd met de metabox "Aangepaste velden" door ze rechtstreeks in een plug-in of thema te implementeren, of door een gespecialiseerd framework zoals pods of geavanceerde aangepaste velden te gebruiken.
Technisch gesproken is het plaatsen van meta-gegevens alle informatie die is opgeslagen in de wp_postmeta
tafel. Zoals we eerder hebben vermeld, is een goed voorbeeld van post-metadata het metabeschrijvingsveld dat wordt geïntroduceerd via plug-ins zoals WordPress SEO.
WordPress biedt ons verschillende manieren om metagegevens voor een bericht te krijgen.
We kunnen slechts één veld gebruiken get_post_meta ()
door dat veld op te geven. Om bijvoorbeeld een veld genaamd 'foo' te krijgen van de huidige post in de lus die we zouden kunnen doen get_post_meta (get_the_id (), 'foo', true);
.
Merk op dat we het laatste argument hebben ingesteld waar
. Dit argument, 'single' genaamd, bepaalt of we een enkele waarde of een reeks waarden terug willen. Als we zouden willen, zouden we alle waarden voor de post in één variabele kunnen krijgen, of alle waarden uit het veld.
Soms willen we een volledige lus rond een metagegevens bouwen, en dit is waar WP_Query
is erg handig. WP_Query
stelt ons in staat om een zogenaamde "meta-query" uit te voeren, waarbij we de berichten opvragen op basis van een of meer metavelden en de berichten retourneren met waarden die overeenkomen met een specifieke waarde. Het resultaat is een verzameling waarmee we kunnen lussen.
Stel je bijvoorbeeld voor dat we een veld hebben met de naam "author_name" en we wilden elke post waar het veld zich bevond auteur naam
had de waarde 'J.R.R. Tolkien'. WP_Query
stelt ons in staat om dit eenvoudig te doen - we zullen dit tijdens het vierde deel van deze serie diepgaand bekijken.
Posts zijn niet het enige type data dat metadata bevat. U kent bijvoorbeeld al die velden die beschikbaar zijn in het gebruikersprofiel? Dat zijn allemaal metavelden, in plaats van te worden opgeslagen in de wp_postmeta
tabel, ze worden opgeslagen in de wp_usermeta
tafel.
Als gevolg hiervan hebben we speciale functies en klassen voor meta-informatie van gebruikers. De functies get_user_meta ()
en get_author_meta ()
zijn het equivalent van metagegevens ophalen voor gebruikers. WP_Query
heeft ook zijn eigen gebruikersequivalent - WP_User_Query
.
Wanneer u functies zoals gebruikt get_post_meta ()
om meer dan één veld te retourneren, krijgt u waarschijnlijk een zogenaamde multidimensionale array. Een meerdimensionale array is ook bekend als een array van arrays. Elke array binnen de meerdimensionale array kan een meerdimensionale array zijn.
Geluid verwarrend? Maak je geen zorgen! In deze reeks gaan we in op het lezen van multidimensionale arrays om "door te bladeren" naar de index die u nodig hebt.
Eindelijk - zoals we eerder al zeiden - is een andere methode om informatie over een post te krijgen, te gebruiken WP_Query
. Wanneer u de WP_Query
klasse gebruik je wat object-georiënteerde PHP wordt genoemd en wat je terugbrengt is anders dan een array - het is een object.
In sommige opzichten zijn objecten vergelijkbaar met arrays in die zin dat ze gegevensreeksen kunnen bevatten. Maar met een object kunt u elk van de beschikbare functies in de klas gebruiken. Dit betekent dat we niet alleen een WP_Query-object kunnen gebruiken om een waarde voor een metaveld te retourneren, maar we kunnen ook de interne methoden gebruiken, waarvan de meest voorkomende de post()
.
Op dit punt hebben we een overzicht gemaakt van de verschillende typen metadata, hoe ze zijn opgeslagen, hoe ze kunnen worden weergegeven en hoe ze kunnen worden opgehaald.
Terwijl we doorgaan met deze serie, zullen we elk aspect van de metadatatabellen, de bijbehorende API's, en hoe we deze kunnen benutten om functionaliteit en flexibiliteit in onze projecten te introduceren, veel dieper bekijken..