Custom Post Type készítése WordPressben
Előbb vagy utóbb mindenki kinövi a sima, alap WordPress bejegyzés + oldal kombinációt: szeretnél egy olyan bejegyzéstípust, aminél van cím, de nincs tartalom, de legyen ott három plusz mező, abból egyben pipálni lehessen, kettő másiknál meg szöveges adatot adhasson meg. Tudom, erre is van plugin: "480" oldalnyi (bár itt a custom szó azért megnyomja a találatokat rendesen, ezért is az idézőjel), de azért nézzünk erre egy jófajta #plugout-os megoldást.
Ahogy már megszokhattuk, hozzunk létre egy fájlt (mondjuk unicorn-custom-post-type.php
néven) az mu-plugins mappánkban, a következő tartalommal:
Ez egy jó hosszú snippet, csak nagy vonalakban nézzük, hogy mi mit csinál:
Az első 11 sor magától értetődik (ezek kommentek), a 12. sorban definiálunk egy függvényt, unicorn_cpt
néven, a 14-50. sorok közötti tartalommal. Az 52. sorban a WordPress init
hookjára "rákötjük", tehát akkor meghívódik és lefut.
Az 50. sorban regisztráljuk az egyedi bejegyzéstípusunkat, az $args
paraméterben meghatározott jellemzőkkel. Az $args
tartalmát feljebb, a 33. sorban definiáljuk:
-
label
: a post type címkéje, fordításra kész formában (mindegyik string fordításra kész, ezért ezt a továbbiakban nem jelzem). -
description
: leírás, ami a post type archive oldalán jelenik meg, ha a sablon támogatja. -
labels
: ez a különféle szöveges elemek értékeit tartalmazza, l. a 15-29. sorokat. -
supports
: ez egy tömb, melyben azokat a feature-öket soroljuk fel, melyeket a CPT-nk támogat. Jelenleg a címet és a kiemelt képet támogatja a bejegyzéstípusunk. A teljes listáért lásd a register_post_type Code Reference oldalt. -
has_archive
: van-e archívum oldala a CPT-nek? Ha ezfalse
, akkor nincs, ha valamilyen string, akkor automatikusan legenerálja hozzá a rewrite rule-okat is és elérhetővé teszi azon a címen. (tehát ebben az esetben ez a /unicorns) -
menu_icon
: melyik ikont használja az itt elérhető ikonok közül
A többi paraméterrel finomhangolhatod a custom post type-odat, viszont ezekre nem térek ki. Ha érdekel, itt utána tudsz nézni.
Gratulálok! Létrehoztad az első Custom Post Type-odat. Ugye, hogy nem volt nehéz? ;)
Ahogy megszokhattátok, következzen Barna, aki videóban mutatja be a folyamatot: