Komma igång med avancerade anpassade fält

I denna handledning ska jag visa dig grunderna för att använda plugin för avancerade anpassade fält (ACF). ACF är en ganska stor plugin, så den här artikeln kommer inte att förklara absolut allt det erbjuder, men det borde vara tillräckligt för att komma igång med att lägga till egna metadata och visa den inom ditt tema. 

Vid skrivande tid finns det två versioner av ACF: 4 och 5. Denna artikel är baserad på version 4, men bör också gälla om du använder version 5.

Vad är avancerade anpassade fält?

Avancerade anpassade fält är ett användargränssnitt för att lägga till egna fält eller metadata till WordPress. Med anpassade fält kan du utöka dina inlägg eller sidor med mer data. Låt oss titta på ett gemensamt scenario:

Du har en posttyp som heter film och du vill bifoga ett poäng av tio till botten av varje recension, tillsammans med andra data. Nu kan du bara sätta denna information i ditt inlägg, men vad händer om du senare vill använda dessa data på annat sätt? Kanske vill du flytta poängen ovanför din recension; i det här fallet måste du manuellt redigera varje recension och manuellt flytta den här noteringen, inte bra.

WordPress har inbyggda funktioner för att skapa egna fält, men de innehåller bara grundläggande funktionalitet och kräver att fält skapas programmatiskt. ACF har många inbyggda fälttyper, varav några inkluderar:

  • text
  • e-post
  • WYSIWYG-redaktör
  • bild
  • fil
  • välj rutan
  • Datumväljare
  • färgväljare

Förutom att ha inbyggda fält, ger ACF dig ett urval regler som kan användas för att bestämma var fält visas i din WordPress-admin. Det här är verkligen användbart för att hålla ditt administratörsområde så rent som möjligt. Du kan till exempel bara visa en grupp anpassade fält om din posttyp är recensioner och din sidmall är omfattad recension.

Komma igång

Innan vi börjar lägga till några fält måste du installera ACF-plugin. För att göra det, gå från WordPress instrumentbrädan till Plugins> Lägg till nytt. Från Lägg till plugin skärm, sök efter Avancerade anpassade fält och klicka Installera. Var noga med att aktivera plugin-om den har installerats korrekt så borde du nu se en Anpassade fält menyn inom din WordPress admin.

Stämmer med temat för en filmgranskningswebbplats, vi kommer att skapa några relevanta fält. För att följa med denna handledning behöver du en anpassad posttyp som heter film. För att lära dig hur du skapar inläggstyper, gå vidare till den här andra stora Tuts + artikeln. Med detta sagt kommer metoderna som visas här att fungera för många andra typer av anpassade fält, och logiken för att skapa och visa fält kommer att förbli densamma.

Skapa fältgrupper

Fältgrupper är precis vad de säger: grupper av fält. Använda exemplet att ha en posttyp kallad film, Vi kanske vill inkludera följande data:

  • utgivningsår
  • direktör
  • betyg av tio
  • IMDb länk

Dessa fält hör logiskt till en grupp, eftersom de alla är relaterade till samma posttyp. Med hjälp av ovanstående fält kan vi börja tänka på vilka fälttyper vi kan behöva för dessa data.

  • Utgivningsår: siffra
  • direktör: text
  • betyg av tio: siffra
  • IMDb länk: text (det finns ingen typfält för url)

För att börja lägga till en fältgrupp klickar du på Anpassade fält menyn inom din WordPress dashboard. Klicka nu på Lägg till ny knapp. Du kommer nu att presenteras med Lägg till ny fältgrupp skärm. Innan vi gör något annat, låt oss ge vår fältgrupp ett namn genom att skriva in titelfältet - jag har kallat min Filmdata.

Därefter kan vi lägga till alla våra fält. Klicka på Lägg till fält knappen för att komma igång. Du kommer nu att se ett formulär som har följande fält:

  • Fältetikett är namnet som visas vid redigering. Jag tycker att det är användbart att börja med samma prefix på vart och ett av mina fält, t.ex.. Filmår, Filmregissör, etc.
  • Fält namn är namnet som du kommer att använda i din kod för att visa fältet. Efter att ha skrivit in fältetiketten, bör detta automatiskt fyllas i. Detta är ett enda ord utan mellanslag, men bindestreck och bindestreck är tillåtna. Till exempel, Filmår som en fältetikett skulle bli till movie_year som ett fältnamn.
  • Fälttyp är ett grundläggande textfält (även om ACF erbjuder mer avancerade alternativ).
  • Fältinstruktioner Det finns instruktioner som författare kan se när data läggs till på redigeringsskärmen, t.ex. "Filmåret ska alltid vara det amerikanska utgivningsdatumet".
  • Nödvändig är en radiobox där du väljer ja eller nej. Att välja "ja" betyder att fältet måste fyllas i för att spara på skärmen för postredigering.
  • Standardvärde är det värde som automatiskt kommer att visas när du skapar ett nytt inlägg.
  • Placeholder Text visas inom din inmatning på redigeringsskärmen.
  • Prepend definierarVad visas före inmatningen på redigeringsskärmen.
  • Bifoga Definierar vad som visas efter inmatningen på redigeringsskärmen.
  • formatering gerdu två val: "Konvertera HTML till taggar" (standard) eller "nej formatering". Konvertera HTML till taggar betyder att någon HTML i din inmatning kommer att göras på skärmen; ingen formatering innebär att någon HTML kommer att ignoreras.
  • Teckenbegränsning tillåter oss att begränsa antalet tecken för en ingång. Till exempel på vår år Inmatning vi borde begränsa tecknen till fyra.
  • Villkorlig logik är en mer avancerad funktion som vi inte kommer att titta på i den här artikeln.

Dessa fält visas alla för text fälttyp - på vissa andra fälttyper kan vissa av dessa alternativ inte visas, eller det kan finnas några ytterligare alternativ. Som vi också ska använda siffra fälttyp, det finns några ytterligare alternativ tillgängliga för oss:

  • Minsta värde är det minsta antal värdet som tillåts i fältet. För vår poäng ur tio fält skulle det vara rimligt att ställa in detta till en, eftersom vi inte kommer att göra något som noll.
  • Maximalt värde är det högsta talvärdet att tillåta i fältet. Återigen kan vi använda detta för vår poäng ur tio fält och ha värdet som tio, eftersom vi inte vill att detta värde överskrids.
  • Steglängd definierar det värde som ett nummer ökar när en pil trycks in. När det gäller filmresultatet är det en bra idé att ställa in det här som ett.

Så här ställer jag in mina fält:

  • Fältetikett: Filmår
  • Fält namn: movie_year
  • Fälttyp: siffra
  • Nödvändig: Ja
  • Minsta värde: 1900
  • Maximalt värde: 2050

Observera de minsta och maximala värdena här - jag ställer in dessa för att lägga till lite grundläggande validering, eftersom det är osannolikt att vi kommer att få en film äldre än 1900 och en nyare än 2050 under webbplatsens livstid.

  • Fältetikett: Filmregissör
  • Fält namn: Filmregissör
  • Fälttyp: Text
  • Nödvändig: Ja
  • formatering: Ingen formatering

Eftersom vi ska formatera vår produktion i vår HTML, vill vi inte att redaktörer kan lägga till HTML här som kan störa vår layout. Därför valdes "ingen formatering" här.

  • Fältetikett: Movie Score
  • Fält namn: movie_score
  • Fälttyp: siffra
  • Nödvändig: Ja
  • Minsta värde: 1
  • Maximalt värde: 10
  • Steglängd: 1

Återigen har vi ett minimum och ett maximalt värde som anges här för att lägga till någon validering; våra poäng är av tio, så vi vill inte att redaktörer ska kunna lägga in en högre poäng än detta. På samma sätt vill vi inte ha några poäng som är lägre än en.

  • Fältetikett: Movie IMDb Link
  • Fält namn: movie_imdb_link
  • Fälttyp: Text
  • Fältinstruktioner: Klistra in hela IMDb-webbadressen här. t.ex. http://www.imdb.com/title/tt2015381/
  • Nödvändig: Ja
  • formatering: Ingen formatering

Jag lade till några fältinstruktioner till den här ingången, eftersom det inte finns något URL fälttyp så det är svårt att validera. Instruktionerna bör göra det enklare för redaktörer att förstå hur man använder fältet.

När du har lagt till alla dina fält måste du klicka på Uppdatering knapp. När du har klickat på det här kommer du att vara tillbaka på Redigera fältgrupp sida. Det finns bara några fler saker vi behöver göra på den här skärmen för att få dina fält att fungera korrekt.


Nedan är fältområdet en ruta som heter Plats-Det här låter oss styra var våra anpassade fält visas. Vi vill bara att våra anpassade fält visar om posttypen är film. I den första rullgardinsmenyn, välj Posttyp, i den andra rullgardinsmenyn välj är lika med, och i den tredje väljaren film.

Det sista vi behöver göra här är inställt där vårt anpassade fält kommer att visas på redigeringsskärmen. För att göra detta, bläddra ner lite längre till alternativ sektion. Detta gör det möjligt för oss att välja var den anpassade fältmetaboxen ska visas och vilken typ det är och det ger oss möjlighet att dölja andra saker från redigeringsskärmen.

Alternativen är som följer:

  • Beställningsnr: Om du har flera fältgrupper skapas de i ordning från lägsta till högsta.
  • Placera har tre alternativ:
    • Sida
    • Hög (efter titel)
    • Normal (efter innehåll)
  • Stil: standard eller sömlös (se bilden nedan för skillnaden mellan dessa).
  • Dölj på skärmen: Det här är en lista med kryssrutor så att du kan dölja saker du kanske inte behöver, t.ex. taggar, kategorier eller kommentarer.

Alternativen jag använde är:

  • Placera: Sida
  • Stil: Vanligt

Resten var kvar som standard.

Du kan kontrollera att dina fält visas korrekt genom att göra ett nytt inlägg (i detta fall i film posttyp). Om allt har fungerat bra så kommer du att se din metabox. Nu är det bra att lägga till några testdata.

Lägga till fält i ditt tema

Nu när du har skapat dina fältgrupper och har några testdata kan du börja visa data inom ditt tema eller barntema.

Du kan använda standardversionen av WordPress get_post_meta () fungera med ACF, men det rekommenderas att du använder ACFs egna funktioner, eftersom ACF formaterar värdena beroende på vilken fälttyp du har skapat. Vi ska använda ACF: s fältet() fungera. Den här funktionen visar ditt anpassade fält och tar en parameter av fältnamnet, till exempel:

Låt oss ta itu med våra metadata. Vi ska ha all denna information i en enda div.

  • :
  • :
  • : / 10
  • "target =" _ blank ">

Denna kod är ganska enkel-vi använder _E funktion att internationalisera våra strängar och eko dem, och sedan använda ACF fältet() metod för att eko värdet av det fält vi skapade. Allt detta har placerats i en orörd lista, inuti a div element med en klass av recensioner-meta, så vi kan rikta det mot vår CSS.

Så vart går den här koden? I det här fallet är det bäst att skapa en ny mall för din posttyp. För att göra detta, gör en kopia av ditt tema single.php fil och namnge den enkel postname.php-i vårat fall enkel movie.php. Varje single.php kommer att se annorlunda ut, men de borde alla ha en sak gemensamt: en WordPress-loop. Din WordPress-loop skulle se något ut så här:

  

Dina anpassade fält kan gå utanför slingan, och exakt var du placerar dem beror på hur du vill att sidan ska se ut. I mitt fall (med hjälp av temat för standard tjugo fjorton) har jag lagt dem precis under slingan och tillämpat några grundläggande styling på .recensioner-meta CSS klass.


Slutsats

Vi har täckt grunderna i plugin för avancerade anpassade fält. Det vill säga vi har lagt till några fält och visar dem nu på vår webbplats. Det finns dock mycket mer till ACF, och vi har bara repat ytan. Det finns många fler fälttyper du kan använda, liksom mer avancerade funktioner som villkorlig logik.

Vänligen lämna frågor, kommentarer och allmän feedback i formuläret nedan!