Rask Tips Hierarkiske tilpassede innleggstyper som ikke fungerer for deg?

Opprette nettsteder kan være utfordrende. Nå en dag kan et typisk nettsted ha mange typer informasjon å presentere for leseren. Med et bloggsted behandler vi for det meste innlegg som legges til bloggen over tid. Men hvis nettstedet vårt handler om programvare, musikk eller nesten alt annet, kan det være best å ha en spesiell måte å skille mellom ulike typer informasjon.

WordPress er et flott Content Management System (eller CMS) som lar oss definere egendefinerte innleggstyper for bedre å kategorisere hvilken informasjon vi har for våre lesere. Ved å lage nettsteder har jeg brukt egendefinerte innleggstyper i WordPress for å lage et FAQ-ark, en måte å liste PDF-filer, opplæringsprogrammer og mange andre måter på. Noen plugins bruker til og med egendefinerte innleggstyper til å lage det dynamiske innholdet for en skyveknapper på nettstedet. Det er mange måter å benytte seg av dette svært fleksible systemet. Men det har sine problemer: dokumentasjon!


Problemet

En funksjon av egendefinerte innleggstyper som jeg har hatt svært vanskelig å finne ut er hierarkiske posttyper. En hierarkisk posttype er en posttype med en forelder og en eller flere barn. Sidene posttype i WordPress er et klassisk eksempel på en hierarkisk posttype. En side kan være forelder for andre sider, som kan være foreldre til andre sider på en hierarkisk måte. Dette skaper en veldig naturlig måte å gruppere mange relaterte sider på.

Mens du jobber med et nytt prosjekt som hadde en egendefinert innleggstype, ble det veldig klart at å ha den egendefinerte innleggstypen hierarkisk i likhet med sider, ville være svært gunstig. Jeg dove inn i dokumentasjonen for egendefinerte innleggstyper. Det meste av arbeidet som er gjort for å lage en egendefinert innleggstype, er i spesifikasjonen av funksjonen for registrering av en posttype: register_post_type () funksjon. Denne funksjonen er hvordan vi oppretter egendefinerte innleggstyper i WordPress.

Skanner dette dokumentet, jeg fant denne linjen:

hierarkisk
(boolesk) (valgfritt) Om posttypen er hierarkisk (for eksempel side). Tillater foreldre å bli spesifisert.
Standard: false

Jeg trodde, slik definerer vi en hierarkisk posttype. Jeg satte den til sann og løp skriptet. Jeg hadde min egendefinerte innleggstype og alt så bra ut. Så la jeg merke til et problem. Det var ingen meta-box-området i redigeringsskjermen for å angi forelderen for gjeldende tilpasset innleggstype. Den linjen fungerte ikke!


Løsningen

Så, jeg gjorde hva hver programmerer gjør, jeg søkte etter det på Google! Overraskende fant jeg mange innlegg der folk spurte det samme spørsmålet. Men jeg fant aldri et innlegg som besvarte spørsmålet. Når Google ikke hjelper, er den eneste andre løsningen: Prøv alle kombinasjoner av argumenter som er mulige i spesifikasjonen for register_post_type () funksjon! Det tok en stund!

Til slutt merket jeg disse linjene:

støtter
(array) (valgfritt) Et alias for å ringe add_post_type_support () direkte.
Standard: tittel og redaktør

* 'tittel'
* 'editor' (innhold)
* "forfatter"
* 'miniatyrbilde' (kjennetegnet bilde, nåværende tema må også støtte etter miniatyrbilder)
* 'utdrag'
* 'trackbacks'
* 'tilpassede felt'
* 'kommentarer' (vil også se kommentar teller ballong på rediger skjerm)
* 'revisjoner' (vil lagre revisjoner)
* 'side-attributter' (meny rekkefølge, hierarkisk må være sant å vise Parent alternativ)
* 'postformater' legger til postformater, se Postformater

Jeg så ikke noe som nevner hierarkiske posttyper først, men ordene 'page-attributter"stod ut til meg. Den eneste posttypen som er innfødt til WordPress, som er hierarkisk, er siden. Kanskje hvis jeg ga mine egendefinerte innleggssider, så ville det kanskje vise overordnet meta-boksen. Akkurat som den tanken gikk gjennom hodet mitt, la jeg endelig merke til slutten av linjen som sa 'hierarkisk må være sant å vise Parent alternativ'. Bingo! Jeg visste at det var det jeg trengte. Jeg la linjen til min egendefinerte innleggstype og sikkert nok, det virket. Jeg hadde nå en hierarkisk tilpasset posttype!


Konklusjon

Derfor, for å lage en hierarkisk egendefinert innleggstype må du ha "page-attributter'satt i'støtter'array og'hierarkisk'flagget satt til ekte. Jeg håper dette var nyttig for deg også!

Hvilke andre små gotchas har du kommet over når du utvikler for WordPress, og hva er de tipsene du kan dele for å redde andre tid? Del dem rundt i kommentarene nedenfor.