Preskoči na vsebino
BeoHosting
BeoHosting
WordPress

Vodnik za WordPress custom post types

BeoHosting Ekipa··10 min branja branja
Vodnik za WordPress custom post types

Kaj so custom post types

WordPress platforma za spletno mesto privzeto prihaja z dvema tipoma vsebine - objavami (blog članki) in stranmi. Vendar pa ima večina spletnih mest vsebino, ki ne pripada nobenemu od teh tipov. Portfolio projekti, izdelki, recenzije, dogodki, nepremičnine, recepti ali člani ekipe so primeri vsebine, ki zahteva lastno strukturo in prikaz. Custom post types oziroma prilagojeni tipi vsebine vam omogočajo ustvarjanje novih tipov vsebine z lastnimi polji, taksonomijami in predlogami.

Custom post types so temeljni koncept v razvoju WordPressa, ki WordPress pretvori iz platforme za bloganje v poln CMS (Content Management System). Vsak WordPress vtičnik, ki dodaja nov tip vsebine, kot so izdelki WooCommerce, dogodki The Events Calendar ali Portfolio vtičniki, pod pokrovom uporablja custom post types. Razumevanje CPT-jev vam daje poln nadzor nad strukturo vsebine na vašem spletnem mestu.

Registracija custom post type-a

Funkcija register_post_type

Custom post type se registrira z uporabo WordPress funkcije register_post_type, ki se kliče znotraj hook-a init. Funkcija sprejme dva argumenta - slug, ki je notranji identifikator tipa vsebine, in polje argumentov, ki določajo obnašanje in videz v skrbniškem panelu. Slug naj bo v ednini, z malimi črkami, brez presledkov in največ 20 znakov dolg. Na primer, za portfolio projekte bi bil slug project, za nepremičnine property, za recepte recipe.

Ključni argumenti

  • labels: Polje oznak, ki jih WordPress uporablja v skrbniškem vmesniku, vključno z name za množino, singular_name za ednino, add_new za gumb za dodajanje, edit_item za naslov strani za urejanje in search_items za iskanje.
  • public: Ali je tip vsebine javno dostopen na frontendu. Nastavite na true za vsebino, ki naj jo obiskovalci vidijo.
  • has_archive: Ali ima tip vsebine arhivsko stran, ki prikaže vse elemente, podobno blog strani za objave.
  • supports: Katere funkcionalnosti WordPressa so na voljo za ta tip vsebine, vključno z title, editor, thumbnail, excerpt, custom-fields, comments in revisions.
  • menu_icon: Dashicons ikona, ki se prikaže v skrbniški stranski vrstici. WordPress prihaja s preko 300 ikonami za različne namene.
  • rewrite: Določa strukturo URL-ja za ta tip vsebine. Na primer slug portfolio ustvari URL-je, kot je vasespletnomesto.com/portfolio/ime-projekta.
  • show_in_rest: Omogoča Gutenberg urejevalnik in dostop prek REST API. Nastavite na true za sodobna WordPress spletna mesta.

Advanced Custom Fields (ACF)

Zakaj uporabiti ACF

WordPress custom fields so osnovni mehanizem za dodajanje dodatnih podatkov vsebini, vendar je nativni vmesnik nepraktičen. Vtičnik Advanced Custom Fields preoblikuje izkušnjo ustvarjanja vsebine z dodajanjem intuitivnih polj, kot so text input, textarea, izbirnik slik, datepicker, Google Maps polje, relationship polje in še veliko več. ACF je de facto standard v razvoju WordPressa s preko 2 milijonoma aktivnih namestitev in ga uporabljajo agencije po vsem svetu.

Tipi polj

ACF ponuja preko 30 tipov polj, organiziranih v kategorije. Osnovna polja vključujejo text, textarea, number, email, URL in password. Polja za izbiro so select, checkbox, radio button, button group in true/false. Polja za vsebino so image, file, WYSIWYG urejevalnik, oEmbed za video in gallery. Relacijska polja so link, post object, page link, relationship in taxonomy. Layout polja so group, repeater za ponavljajoče se sekcije, flexible content za modularne postavitve in clone. Polje repeater je še posebej močno, saj omogoča ustvarjanje ponavljajočih se struktur, kot so seznam članov ekipe, sekcije z ikonami ali tabela specifikacij.

Prikaz ACF polj

ACF ponuja preproste PHP funkcije za prikaz vrednosti polj v temah. Funkcija get_field vrne vrednost polja, the_field pa neposredno izpiše vrednost. Za slike get_field vrne polje z URL-jem, širino, višino in alt besedilom. Za repeater polja uporabite have_rows in the_row v zanki while za iteracijo skozi vse vrstice. Za flexible content uporabite get_row_layout, da določite, za kateri layout gre, in prikažete ustrezno predlogo. Dokumentacija ACF je izjemno podrobna s primeri za vsak tip polja.

Prilagojene taksonomije

Kaj so taksonomije

Taksonomije so sistemi za klasifikacijo vsebine. WordPress privzeto ima dve taksonomiji - kategorije, ki so hierarhične, in oznake (tags), ki so ravne. Za custom post types so običajno potrebne prilagojene taksonomije. Na primer, portfolio projekti imajo lahko taksonomijo tip projekta z vrednostmi, kot so spletno oblikovanje, znamčenje in fotografija. Nepremičnine imajo lahko taksonomije za lokacijo, tip nepremičnine in cenovni razred. Recepti imajo lahko kuhinja, tip jedi in raven zahtevnosti.

Registracija taksonomij

Funkcija register_taxonomy se kliče znotraj hook-a init, podobno kot register_post_type. Sprejme tri argumente - slug taksonomije, polje post tipov, na katere se nanaša, in polje argumentov. Argument hierarchical določa, ali taksonomija deluje kot kategorije z odnosom parent-child ali kot oznake z ravno strukturo. Oznake (labels) določajo, kako se taksonomija prikazuje v skrbniškem panelu. Argument rewrite nadzoruje strukturo URL-ja za arhivske strani taksonomije.

Hierarhične v primerjavi z ravnimi taksonomijami

Hierarhične taksonomije se v skrbniškem panelu prikazujejo kot seznam potrditvenih polj (checkbox) z možnostjo ustvarjanja parent in child terminov. Uporabite jih za klasifikacije z jasno strukturo, kot so lokacije, kjer ima Slovenija podkategorije Ljubljana, Maribor in Celje. Ravne taksonomije se prikazujejo kot polje za vnos oznak, kjer vtipkate termine, ločene z vejicami. Uporabite jih za prožne oznake, kot so tehnologije, veščine ali značilnosti, kjer ni hierarhičnega odnosa.

Datoteke predlog za custom post types

WordPress hierarhija predlog

WordPress uporablja specifično hierarhijo za določanje, katera datoteka predloge bo uporabljena za prikaz vsebine. Za custom post type s slug-om project WordPress išče datoteke v naslednjem vrstnem redu. Za posamezne elemente išče single-project.php, nato single.php, nato singular.php in nato index.php. Za arhivsko stran išče archive-project.php, nato archive.php in nato index.php. Ustvarite specifične datoteke predlog za svoj CPT, da imate poln nadzor nad prikazom.

Single predloga

Single predloga prikaže en element vašega custom post type-a. Na primer single-project.php za portfolio projekt prikaže naslov projekta, featured image, opis, ACF polja, kot so stranka, datum, URL projekta in galerija slik. Uporabite WordPress zanko the_loop za dostop do podatkov objave in ACF funkcije za prilagojena polja. Dodajte navigacijo med projekti s previous_post_link in next_post_link ter sekcijo s sorodnimi projekti, ki temelji na taksonomiji.

Archive predloga

Archive predloga prikaže seznam vseh elementov s filtriranjem po taksonomiji. Na primer archive-project.php prikaže mrežo portfolio projektov s thumbnail-om, naslovom, kategorijo in kratkim opisom. Dodajte gumbe za filtriranje za taksonomije, tako da lahko obiskovalci filtrirajo projekte po tipu. Paginacija omogoča navigacijo skozi veliko število elementov. Za napreden prikaz uporabite WP_Query s prilagojenimi argumenti za razvrščanje, filtriranje in združevanje elementov.

WP_Query za custom post types

Prilagojene poizvedbe

Razred WP_Query omogoča ustvarjanje prilagojenih poizvedb za pridobivanje elementov custom post type-a z določenimi kriteriji. Argument post_type določa, kateri tip vsebine pridobivate. posts_per_page nadzoruje število rezultatov. orderby in order določata razvrščanje po datumu, naslovu, menu_order ali meta vrednosti. tax_query filtrira po taksonomiji z možnostjo združevanja več taksonomij z operatorjem AND ali OR. meta_query filtrira po vrednostih custom field z operatorji, kot so enako, večje od, manjše od, LIKE in BETWEEN.

Primeri poizvedb

Za prikaz zadnjih 6 portfolio projektov iz kategorije spletno oblikovanje, razvrščenih po datumu, uporabite WP_Query z argumenti post_type project, posts_per_page 6, tax_query s taksonomijo project_type in terminom web-dizajn. Za prikaz nepremičnin s ceno med 50000 in 100000 evri uporabite meta_query s ključem cena, tipom NUMERIC in operatorjem BETWEEN. Po prilagojenih poizvedbah vedno ponastavite globalni objekt post z wp_reset_postdata, da ne pokvarite glavne WordPress zanke.

REST API in Gutenberg

Dostop prek REST API

Z argumentom show_in_rest, nastavljenim na true, vaš custom post type samodejno dobi REST API endpoint na naslovu vasespletnomesto.com/wp-json/wp/v2/slug. To omogoča pridobivanje, ustvarjanje, posodabljanje in brisanje elementov prek API klicev, kar je osnova za headless WordPress pristop in JavaScript frontend-e. ACF polja je mogoče izpostaviti v REST API z uporabo vtičnika ACF to REST API ali z ročno registracijo polj s funkcijo register_rest_field.

Gutenberg bloki

Z omogočenim show_in_rest vaš CPT uporablja Gutenberg urejevalnik namesto klasičnega urejevalnika. Ustvarite lahko prilagojene Gutenberg bloke, specifične za vaš tip vsebine, z uporabo ACF Blocks, ki omogoča ustvarjanje blokov s PHP predlogami in ACF polji brez znanja Reacta. Na primer, za portfolio lahko ustvarite blok, ki prikaže mrežo izbranih projektov, ali za recepte blok, ki s prilagojenim slogom oblikuje seznam sestavin in korake priprave.

Najboljše prakse za custom post types

Poimenovanje in organizacija

Uporabite predpono za slug svojega CPT-ja, da se izognete konfliktom z drugimi vtičniki in posodobitvami WordPressa. Na primer, namesto project uporabite mojvticnik_project. Registracijo CPT-jev in taksonomij združite v ločen razred ali datoteko za lažje vzdrževanje. Uporabite konstante za slug-e, da se izognete napakam zaradi tipkarskih napak. Dokumentirajte vsak CPT z opisom namena, seznamom ACF polj in taksonomij.

Zmogljivost

Vsak custom post type doda poizvedbe v podatkovno bazo, zato se izogibajte ustvarjanju preveč CPT-jev, kadar lahko taksonomije dosežejo isti cilj. Na primer, namesto ločenih CPT-jev za blog, novice in tutoriale uporabite standardne objave s kategorijami. ACF polja se shranjujejo kot post meta v podatkovni bazi - za polja, ki se pogosto uporabljajo v poizvedbah, razmislite o ustvarjanju prilagojene tabele za boljšo zmogljivost. Kompleksne WP_Query poizvedbe predpomnite z uporabo transient API, da zmanjšate obremenitev baze. Na naših WordPress hosting rešitvah imamo optimizirano okolje za spletna mesta s custom post types in naprednimi poizvedbami z dovolj PHP pomnilnika in hitrimi SSD diski za odzivno skrbniško izkušnjo.

Zaključek

Custom post types preoblikujejo WordPress iz blog platforme v močan CMS, sposoben upravljanja katerega koli tipa vsebine. Kombinacija funkcije register_post_type za ustvarjanje tipov vsebine, ACF za prilagojena polja, prilagojenih taksonomij za klasifikacijo in datotek predlog za prikaz vam daje poln nadzor nad strukturo in predstavitvijo vsebine. To znanje je osnova za profesionalni razvoj WordPressa (začnite z našim vodnikom) in odpira možnosti za ustvarjanje kompleksnih spletnih mest, kot so portfolio predstavitve, katalogi izdelkov, imeniki in poslovne aplikacije.

BeoHosting Ekipa

10+ let izkušenj — Strokovnjaki za spletno gostovanje in infrastrukturo

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Zadnja posodobitev: