Mastering WordPress Metadata En introduktion till metadata

En del av vad som gör WordPress till ett kraftfullt CMS-verktyg är möjligheten att använda wp_postmeta bord för att lagra anpassade fält. Dessa anpassade fält kan innehålla ytterligare information, t.ex. SEO-fält som adderas av ett SEO-plugin, eller kan användas för att visa ytterligare innehåll i fronten.

Genom att lägga till den här ytterligare informationen till fält kan du skapa anpassade frågor för att organisera visning av ditt innehåll med.

Att lära sig att arbeta med dessa data är ett bra sätt att lära sig grundläggande PHP-begrepp, inklusive arrays, loopar och objekt. För att bli en mästare av WordPress metadata måste du behärska arrays av alla slag.

I denna serie av handledning kommer jag att visa dig olika sätt att arbeta med WordPress-post-metadata och användar-metadata som konkreta exempel på hur man arbetar med arrays.

Du kommer att lära dig skillnaden mellan en indexerad array och associativ array samt hur du känner av multidimensionella arrayer.

Vad är Post Metadata?

Den mest tekniska definitionen av postmetadata är all information som lagras i wp_postmeta tabell. Som standard är det inte så mycket, men när som helst ett plugin eller ett tema lägger till ett anpassat fält sparas data som matas in i det fältet i wp_postmeta tabell.

Ett bra exempel är SEO-fälten som ett SEO-plugin lägger till. Tänk exempelvis på en post-metabeskrivning. Det fältet lagras i postmetabordet.

Dessutom kan användarprofiler i WordPress utökas med anpassade fält. I ett förhållande som speglar wp_posts och wp_postmeta, Dessa fält är lagrade i wp_usermeta bord - inte det wp_user tabell.

I denna serie kommer vi inte att diskutera hur man lägger till anpassade fält i WordPress - det är helt eget ämne. Anpassade fält kan läggas till i postredigeraren med rutan "Anpassade fält", genom att implementera dem direkt i ett plugin eller tema eller genom att använda en specialiserad ram som Pods eller Advanced Custom Fields.

Tekniskt sett är postmetadata all information som lagras i wp_postmeta tabell. Som vi tidigare nämnde är ett bra exempel på post-metadata det meta-beskrivningsfält som introduceras genom plugins som WordPress SEO.

Metoder för att få metadata

Använda get_post_meta ()

WordPress ger oss olika sätt att få metadata för ett inlägg.

Vi kan bara få ett fält med get_post_meta () genom att ange det fältet. Till exempel, för att få ett fält som heter "foo" från det aktuella inlägget i loopen vi kunde göra get_post_meta (get_the_id (), 'foo', true);.

Observera att vi satte det sista argumentet till Sann. Detta argument som heter "singel" bestämmer om vi vill ha ett enda värde eller en uppsättning värden tillbaka. Om vi ​​ville ha vi kunde få alla värden för posten till en variabel, eller alla värden från fältet.

Använda WP_Query

Ibland vill vi bygga en hel slinga runt en metadata, och det är här WP_Query är väldigt användbar. WP_Query tillåter oss att göra vad som kallas en "meta fråga" där vi frågar inlägg baserat på ett eller flera metafält och returnera de inlägg som har värden som matchar ett visst värde. Resultatet är en samling genom vilken vi kan loopa.

Tänk oss att vi har ett fält som heter "author_name" och vi ville returnera varje post där fältet författarens namn hade värdesvärdet 'J.R.R. Tolkiens. WP_Query tillåter oss att göra det enkelt - vi kommer att titta på detta djupgående under den fjärde delen av denna serie.

Inlägg är inte alla!

Inlägg är inte den enda typen av data som har metadata. Till exempel kan du alla de områden som finns tillgängliga i användarprofilen? Det är alla meta fält, istället för att lagras i wp_postmeta bord, de lagras i wp_usermeta tabell.

Som ett resultat har vi speciella funktioner och klasser för användarens metainformation. Funktionerna get_user_meta () och get_author_meta () är lika med att få postmeta för användare. WP_Query har också sina egna användare likvärdiga - WP_User_Query.

Objekt Versus Arrays

När du använder funktioner som get_post_meta () att returnera mer än ett fält kommer du sannolikt att få det som kallas en mångdimensionell matris. En mångdimensionell array är också känd som en uppsättning arrays. Varje array inom den mångdimensionella gruppen kan vara en mångdimensionell grupp.

Ljud förvirrande? oroa dig inte! I denna serie kommer vi att täcka hur man läser multidimensionella arrays för att "borra ner" till det index du behöver.

Slutligen - som vi nämnde tidigare - en annan metod för att få information om ett inlägg är att använda WP_Query. När du använder WP_Query klass du använder det som kallas objektorienterad PHP och det du returnerar är annorlunda än en array - det är ett objekt.

På vissa sätt liknar föremål likheter med att de kan innehålla informationskällor. Men med ett objekt kan du använda någon av de funktioner som finns i klassen. Det betyder att vi inte bara kan använda ett WP_Query-objekt för att returnera ett värde för ett metafält, men vi kan också använda sina interna metoder, varav vanligast är stolpen().

Strax…

Vid denna tidpunkt har vi undersökt de olika typerna av metadata, hur de lagras, hur de kan representeras och hur man hämtar dem.

När vi fortsätter med den här serien tar vi en djupare titt på varje aspekt av metadata tabellerna, de associerade API-erna och hur vi kan utnyttja dem för att presentera funktionalitet och flexibilitet i våra projekt.