Snabbtips Hierarkiska anpassade inläggstyper som inte fungerar för dig?

Att skapa webbplatser kan vara utmanande. Nu en dag kan en typisk webbplats ha många typer av information att presentera för läsaren. Med en blogg webbplats hanterar vi mestadels inlägg som läggs till bloggen över tiden. Men om vår webbplats handlar om programvara, musik eller nästan allt annat, kan det vara bäst att ha ett speciellt sätt att skilja de olika typerna av information.

WordPress är ett bra Content Management System (eller CMS) som gör det möjligt för oss att definiera anpassade posttyper för att bättre kategorisera vilken information vi har för våra läsare. Vid skapandet av webbplatser har jag använt de anpassade posttyperna i WordPress för att skapa ett FAQ-ark, ett sätt att lista PDF-filer, handledning och många andra sätt. Vissa plugins använder även anpassade posttyper för att skapa det dynamiska innehållet för en reglage på webbplatsen. Det finns många sätt att utnyttja detta mycket flexibla system. Men det har sina problem: dokumentation!


Problemet

En egenskap hos anpassade posttyper som jag har haft mycket svårt att ta reda på är hierarkiska posttyper. En hierarkisk posttyp är en posttyp med en förälder och ett eller flera barn. Sidorna efter typ i WordPress är ett klassiskt exempel på en hierarkisk posttyp. En sida kan vara förälder till andra sidor, som kan vara föräldrar till andra sidor på hierarkiskt sätt. Detta skapar ett mycket naturligt sätt att gruppera många relaterade sidor.

Under arbetet med ett nytt projekt som hade en anpassad posttyp blev det mycket tydligt att ha den anpassade posttypen hierarkisk i naturen som sidor skulle vara mycket fördelaktig. Jag dyker in i dokumentationen för anpassade posttyper. Det mesta av det arbete som gjorts för att skapa en anpassad posttyp finns i specifikationen för funktionen för att registrera en posttyp: register_post_type () fungera. Den här funktionen är hur vi skapar anpassade posttyper i WordPress.

Skannar det dokumentet, jag hittade den här raden:

hierarkisk
(booleska) (valfritt) Om posttypen är hierarkisk (t ex sida). Tillåter att förälder anges.
Standard: false

Jag trodde, det här är hur vi definierar en hierarkisk posttyp. Jag satte det till sant och sprang manuset. Jag hade min anpassade posttyp och allt såg okej. Då märkte jag ett problem. Det fanns ingen meta-box-område i redigeringsskärmen för att ange föräldern för den aktuella anpassade posttypen. Den linjen fungerade inte!


Lösningen

Så gjorde jag vad varje programmerare gör, jag sökte efter det på Google! Överraskande fann jag många inlägg där människor frågade samma fråga. Men jag hittade aldrig ett inlägg som svarade på frågan. När Google inte hjälper, den enda andra lösningen: prova varje kombination av argument som är möjliga i specifikationen för register_post_type () fungera! Det tog ett tag!

Slutligen märkte jag dessa rader:

bärare
(array) (valfritt) Ett alias för att ringa add_post_type_support () direkt.
Standard: titel och redaktör

* "titel"
* "redaktör" (innehåll)
* "författare"
* "miniatyrbild" (bild, aktuellt tema måste också stödja efter miniatyrbilder)
* 'utdrag'
* 'trackbacks'
* 'Anpassade fält'
* "kommentarer" (även kommer att se kommentarräkningsballong på redigeringsskärmen)
* 'revisions' (kommer att lagra revisioner)
* 'sidattribut' (menyorder, hierarkisk måste vara sant för att visa moderalternativ)
* 'postformat' lägg till postformat, se Postformat

Jag såg inte något som nämner hierarkiska posttyper först men orden "page-attribut"stod ut mot mig. Den enda posttypen som är inbyggd i WordPress som är hierarkisk är sidan. Kanske om jag gav mina anpassade inläggssida attribut, så kanske det skulle visa föräldra meta-boxen. Precis som den tanken gick igenom mitt huvud så märkte jag äntligen slutet på raden som sa "hierarkiska måste vara sant att visa föräldraoption'. Bingo! Jag visste att det var vad jag behövde. Jag lade till raden till min anpassade inläggstyp och visst nog, det fungerade. Jag hade nu en hierarkisk anpassad posttyp!


Slutsats

För att göra en hierarkisk anpassad posttyp måste du därför ha "page-attribut"satt i"bärare"array och"hierarkisk'flaggan satt till Sann. Jag hoppas att det var till hjälp för dig också!

Vilka andra små gotchas har du stött på när du utvecklar för WordPress, och vad är de tips du kan dela för att spara andra tid? Dela dem runt i kommentarerna nedan.