Ghidul suprem pentru tipurile de postări personalizate WordPress

Publicat: 2024-03-26

În urmă cu mai bine de un deceniu, am luat decizia de a schimba viața și cariera de a mă concentra exclusiv pe utilizarea WordPress ca platformă de publicare și a CMS-ului pentru care construiesc pluginuri. Motivele principale au fost documentația excelentă, inclusiv nenumărate postări cu fragmente și tutoriale și ușurința extinderii WordPress. Pentru cazurile mele de utilizare de atunci, cea mai proeminentă caracteristică de extindere a WordPress era Tipurile de postări personalizate.

Îmbunătățite în principal cu WordPress versiunea 3 în 2010, tipurile de postări personalizate (CPT) sunt folosite în multe moduri. Sunt sigur că i-ai întâlnit fără să știi. Permiteți-mi să vă ofer o privire de ansamblu asupra CPT-urilor, exemple specifice despre modul în care le-am folosit de-a lungul timpului, cum să le configurați singur și cum să realizați și mai multe cu plugin-uri conexe.

Ce sunt tipurile de postări personalizate?

Nucleul WordPress vine cu diferite tipuri de postări. Cele mai evidente sunt Postările, Paginile și Atașamentele.

În WordPress 6.4, există încă patru:

  • Revizuirile
  • Meniuri de navigare
  • Șabloane bloc
  • Piese de șablon

Fapt distractiv: comentariile nu sunt un tip de postare. Cred că dacă WordPress nu ar fi fost inițial o platformă de blogging cu comentarii ca o parte centrală, în zilele noastre le-ar fi tratat și ca tip de postare.

După cum ar putea sugera acestea, tipurile de postări nu sunt întotdeauna evidente și nu neapărat ceva vizibil în interfață pe care l-am descrie drept „conținut”. Sunt mai mult un grup de articole înrudite din baza de date.

Puteți adăuga mai multe dintre aceste „lucruri”, care s-ar numi apoi Tipuri de postări „personalizate”.

Nu este un termen oficial WordPress, dar îmi place expresia Tipuri de „conținut” personalizate pentru orice tip de postare personalizat vizibil. Voi intra în câteva exemple mai târziu.

De ce să folosiți un tip de postare personalizat?

WP Mayor a folosit mai multe tipuri de postări personalizate de-a lungul timpului, cum ar fi Ofertele pe viață, pe care o puteți vedea chiar acum.

Personal am folosit tipuri de postări personalizate pentru multe lucruri.

Cele mai comune sunt secțiunile de conținut separate de pe site-uri web. Acest lucru are cel mai mult sens atunci când acel conținut ar trebui să se afișeze și să se comporte diferit de postările și paginile încorporate.

Să ne imaginăm că WP Mayor ar avea și un tip de postare dedicat „Știri”. Doar înregistrând acest tip de postare personalizat, ar avea următoarele avantaje:

  • Un element distinct „Știri” în meniul din WP Admin.
  • Șansa de a acorda utilizatorilor și rolurilor de utilizator capacități diferite pentru acest tip.
  • Aveți diferite șabloane pentru afișarea unor știri individuale pe front-end.
  • O arhivă separată și un flux pentru știri.
  • Metadatele suplimentare ale postărilor sunt stocate numai cu și afișate pentru știri.

De asemenea, am folosit tipuri de postări personalizate pentru elementele de conținut în diferite plugin-uri. Am construit odată o platformă de rezervare pentru case de vacanță, în care casele, rezervările și plățile erau fiecare un tip de postare personalizat distinct, cu atribute unice. Este ceva ce fac și majoritatea pluginurilor de comerț electronic pentru WordPress.

Într-un alt caz, am vrut să înregistrez conținutul tuturor e-mailurilor trimise. Așadar, am creat un tip de postare „Jurnal” cu conținutul e-mailului și toate metadatele atașate care erau vizibile numai cu capabilitățile corespunzătoare în backend-ul WordPress.

În cele din urmă, pluginul Advanced Ads pe care l-am dezvoltat inițial a folosit un CPT pentru a stoca conținutul publicitar.

Acestea sunt doar câteva exemple de tipuri de postări personalizate. Știu că trebuie să fi uitat să menționez multe alte cazuri de utilizare interesante pe care le-am întâlnit de-a lungul anilor.

Principalul avantaj al CPT-urilor din WordPress este că au nevoie doar de câteva linii de cod sau de o configurare rapidă prin intermediul unui plugin, iar WordPress are grijă de o mare parte a logicii de care aveți nevoie pentru a le gestiona și afișa pe site-ul dvs. Deci, să trecem direct la cum să creați tipuri de postări personalizate WordPress.

Crearea unui tip de postare personalizat

Tipurile de postări personalizate pot fi create manual sau printr-un plugin.

Dacă nu aveți experiență în codificare, pluginurile vă fac mult mai ușor să creați tipuri de postări personalizate.

Un dezavantaj al folosirii unui plugin este că tipul de postare personalizat dispare imediat ce ștergeți pluginul. Deși probabil încă există în baza de date, WordPress nu mai știe despre el în frontend sau backend.

Ca dezvoltator care a făcut acest lucru de zeci de ori, încă prefer metoda manuală. Cu toate acestea, recunosc cu bucurie că folosesc și pluginuri cu interfețe frumoase dacă tipul de postare personalizat WordPress este folosit temporar sau pentru a crea o vitrină pentru un client.

Decizii pentru tipuri de postări personalizate

În ciuda metodei pe care o folosim pentru a crea tipul de postare personalizat, mai întâi trebuie să luăm câteva decizii. Deși teoretic ați putea schimba oricare dintre ele mai târziu, acest lucru ar putea avea un impact semnificativ asupra site-ului și a configurației dvs., așa că cel mai bine este să vă gândiți la ele în avans.

Public sau nu?

Principala decizie cu privire la tipurile de postări personalizate este cine ar trebui să le vadă și să interacționeze cu acestea. Cu codul personalizat sau într-un plugin, puteți alege dacă CPT-ul este vizibil în frontend, inclusiv arhivele și paginile individuale accesibile direct și dacă utilizatorii îl găsesc prin căutare. Ar trebui să apară pe backend-ul site-ului dvs. WordPress cu elementul de meniu?

În timp ce un CPT „Știri” este probabil pe deplin vizibil în front-end, un jurnal intern sau ceva de genul plăților ar putea fi restricționat la utilizatorii cu un rol specific în backend-ul WordPress.

Ierarhic

Este posibil să fi observat că tipurile de postări WordPress și Pagini se comportă ușor diferit. Paginile nu au o arhivă în interfață, dar puteți avea pagini părinte și copii.

Aceasta din urmă se numește „ierarhie”, care este, de asemenea, definită atunci când vă creați propriul tip de postare.

Pentru tipurile de postări ierarhice, pagina de editare oferă opțiunea de a alege o pagină părinte și o comandă.

Secțiunea atribute ale paginii din editorul WordPress care arată opțiuni pentru ierarhia paginilor.
Opțiuni de ierarhie la editarea unei pagini.

Ordinea și pagina părinte ar putea conta atunci când se creează automat meniuri sau liste din pagini. Ierarhia este vizibilă și în URL-ul slug. Dacă pagina mea a fost „Depanare” cu „Documentare” ca pagină părinte, adresa URL finală ar putea fi documentation/troubleshooting .

Sfat: Dacă aveți un CPT cu o ierarhie mai profundă, vă recomand să utilizați pluginul Pagini imbricate pentru a aranja rapid postările în ordinea corectă.

Editor bloc sau clasic

Când creați un tip de postare personalizat, sunteți întrebat dacă îl afișați în „API-ul REST” sau nu. Acest termen tehnic face un lucru crucial: determină dacă CPT-ul tău folosește editorul de blocuri sau vizualizarea editorului clasic.

Ca regulă generală, utilizarea editorului de blocuri are sens dacă tipul dvs. de postare este similar cu conținutul obișnuit și doriți să utilizați blocuri WordPress. Orice tip de postare personalizat care nu are nevoie de o porțiune mare a ecranului pentru conținut ar trebui să aleagă editorul clasic. Prin urmare, nu ar trebui să fie livrat prin API-ul REST.

Slug-uri și structură URL

O altă decizie critică pe care trebuie să o iei este denumirea melcului CPT. Tipul nostru de postare „Știri” poate fi referit ca news în adresa URL, dar dacă aveți nume interne mai sofisticate, s-ar putea să doriți să alegeți o formă scurtă pentru adresele URL frontale.

Aceasta ar putea fi o decizie importantă pentru SEO, așa că acordați-vă câteva minute pentru a vă gândi la asta.

Elemente suportate

În funcție de tipul de postare pe care îl construiți, este posibil să doriți să decideți din timp dacă activați suportul pentru următoarele elemente:

  • Titluri (activate implicit)
  • Apare editorul (activat implicit)
  • Comentarii
  • Revizuirile
  • Autorii
  • Extrase
  • Miniaturi

Există multe mai multe opțiuni de ajustat. Cu toate acestea, cele de mai sus sunt cele mai importante de luat în considerare înainte de a utiliza tipul nostru de postare personalizată WordPress.

Creați un tip de postare personalizat cu un plugin

Având în vedere acest lucru, să ne uităm la crearea tipurilor de postări personalizate folosind un plugin și apoi să facem același lucru manual.

Mă duc cu unul dintre cele mai populare gratuite de la wordpress.org: Custom Post Type UI (CPTUI) de WebDevStudios.

Interfața lor este destul de simplă, cu toate opțiunile la care te-ai aștepta de la un plugin Custom Post Types. Cu toate acestea, de asemenea, arată clar că tipurile de postări personalizate sunt încă un concept abstract de înțeles și nu o caracteristică pe care un editor WordPress obișnuit ar trebui să o joace fără o cunoaștere mai profundă a opțiunilor.

Primul ecran cu opțiuni atunci când creați un nou tip de postare personalizat WordPress utilizând pluginul UI pentru tipul de postare personalizat.
Crearea unui nou CPT cu pluginul Custom Post Type UI.

Sfat: sunt personal conservator în privința opțiunilor „publice” pentru CPT-urile mele și le limitez cât mai mult posibil în ceea ce privește cine ar trebui să le vadă în frontend și cine ar trebui să le poată schimba în backend. Dacă este necesar, puteți oricând să acordați mai mult acces ulterior.

Avantajele interfeței de utilizare a tipului de postare personalizat

Există câteva lucruri care îmi plac la acest plugin pe care alții ar putea să le aibă sau nu.

De obicei îmi creez CPT-urile manual, așa că știu că scrierea etichetelor durează mult. Există aproximativ trei duzini dacă doriți să le ajustați pe toate pentru a menționa numele CPT-ului dvs. După cum puteți vedea în captura de ecran de mai sus, pluginul Custom Post Type UI are o opțiune de a completa automat aceste etichete pentru dvs. Le puteți ajusta în continuare în interfață.

În continuare, îmi pot salva tipul personalizat de postare și îl pot edita mai târziu . Pot chiar să schimb slug-ul, iar pluginul va migra apoi toate postările de acest tip . În timp ce aș încerca să previn o situație în care aș avea nevoie de asta, este bine să știu că este posibil și gestionat de plugin.

Interfața de utilizare pentru tipul de postare personalizat păstrează o imagine de ansamblu asupra tipurilor mele de postare . Deși pare un pic copleșitor, este mult mai ușor de revizuit decât codul personalizat. De asemenea, îmi place să văd lista șabloanelor din ultima coloană.

O prezentare generală a tipurilor de postări personalizate WordPress create de pluginul UI tip personalizat de postare.
Tip de postare personalizat listat.

Aceste șabloane fac parte din magia tipurilor de postări personalizate WordPress. Dacă CPT-ul nostru Știri a folosit news slug, atunci WordPress ar căuta automat un fișier numit archive-news.php în tema dvs. pentru a reda pagina de arhivă de tipul respectiv de postare sau single-news.php pentru o singură pagină de știri. Consultați Ierarhia șabloanelor pentru mai multe informații.

Generarea codului cu CPTUI

Caracteristica care în cele din urmă m-a făcut să recomand Custom Post Type UI a fost instrumentul de export CPT în cod PHP . Sub CPT UI > Tools > Get Code, veți găsi codul PHP pe care să îl utilizați în pluginul dvs. sau functions.php . Felicitări dezvoltatorilor de pluginuri pentru că nu au blocat oamenii.

Acest lucru face CPTUI un instrument ideal pentru dezvoltatori, deoarece putem configura rapid un tip de postare personalizat prin interfață și apoi obținem codul PHP pentru a-l folosi. Putem chiar să-l lăsăm pe client să îl configureze pe un site de testare – cu toate etichetele și așa mai departe – și apoi să îl migrăm acolo unde avem nevoie.

Singura opțiune pe care nu am putut-o găsi în plugin este să elimin tipul de postare personalizat cu toate entitățile sale. În general, dacă ștergeți un plugin sau un cod, postările personalizate vor rămâne în baza de date. Cu toate acestea, există pluginuri dedicate pentru curățarea asta.

Utilizarea codului

Dacă sunteți dezvoltator și doriți să implementați un tip de postare personalizat folosind cod, atunci permiteți-mi să vă îndrept către secțiunile relevante din documentația WordPress.

Funcția de bază pentru înregistrarea unui nou tip de postare personalizat este funcția register_post_type. Parametrii săi vă permit să setați toate opțiunile pe care le-am menționat mai sus.

Toate tipurile de postări sunt stocate în tabelul wp_posts din baza de date. Câmpul post_type determină cărei intrări îi aparține un tip de postare.

Puteți utiliza metadatele postării dacă tipul dvs. de postare personalizat este mai mult decât conținut. Aceste date sunt stocate în wp_postmeta .

Apropo, unele pluginuri folosesc tabele personalizate pentru a gestiona tipurile de conținut. Nu mergeți pe acea cale decât dacă trebuie cu adevărat, deoarece nu veți putea folosi toate caracteristicile și funcțiile WordPress încorporate care vin cu API-ul Custom Post Types.

Extindeți tipurile de postări personalizate

Dacă tipul dvs. de postare personalizat este public, poate doriți să-l personalizați și mai mult. Iată câteva opțiuni.

Câmpuri personalizate și casete meta

CPT-urile mai avansate, cum ar fi evenimentele sau articolele din magazin, au nevoie de mai mult decât conținut. Aici intră în joc câmpurile personalizate. Acestea oferă câmpuri de intrare pentru a vă structura datele în diferite moduri. De exemplu, un tip de postare „Eveniment” ar putea avea nevoie de o dată de început și de sfârșit sau un loc, astfel încât evenimentele să poată fi afișate și filtrate.

Deși puteți adăuga câmpuri personalizate și casete meta cu cod personalizat, un plugin excelent pentru acesta este foarte binecunoscutul Câmpuri personalizate avansate. Are atât de multe opțiuni și este atât de bine întreținut încât nici eu, ca dezvoltator, nu aș codifica câmpuri personalizate pe propriile mele site-uri.

Taxonomii personalizate

Deoarece tipul implicit de postare „Postări” poate fi comandat cu „Categorii” și „Etichete”, puteți înregistra taxonomii și pentru tipul de postare personalizat.

Pluginul Custom Post Type UI pe care l-am recomandat mai sus vă ajută și să le creați.

Managementul capacităților

Puteți folosi pluginuri precum Membrii pentru a crea un nou rol pentru autorii de pe site-ul dvs., care pot doar să creeze și să modifice noul tip de postare personalizat sau să ajusteze rolurile de utilizator conexe existente. Acest lucru este recomandat dacă fluxul de lucru editorial este diferit pentru fiecare tip de postare.

Schimbarea tipurilor de posturi

În prezent, reorganizez conținutul într-o bază de cunoștințe internă construită cu WordPress. Postările și paginile au obiective foarte diferite aici. Unii dintre ei și-au schimbat obiectivele, așa că aveam nevoie de o soluție pentru a schimba tipul de post.

Deși nu aș recomanda să faceți acest lucru ușor cu un tip de postare publică, nu există nicio problemă să faceți asta pe un site non-public cu tipuri de postare similare. Pentru a realiza acest lucru, am instalat Post Type Switcher, un plugin excelent care te face să faci asta fără probleme. După instalarea acestuia, pluginul va adăuga o secțiune „Tip de postare” pe ecranul „Editare postare”. Puteți folosi această interfață pentru a schimba tipurile de postări după cum este necesar.

Concluzie

Consider în continuare Tipurile de postări personalizate o caracteristică critică care a permis WordPress să înflorească în ultimul deceniu și nu numai. Este baza care a transformat CMS-ul nostru preferat dintr-o simplă platformă de blogging într-un instrument versatil pentru gestionarea evenimentelor sau a cumpărăturilor online.

Când construiesc pluginuri utilizate pe multe site-uri web, încă mă întâlnesc cu cod pentru a crea noi tipuri de postări. Dar când construiesc site-uri pentru mine și clienți, folosesc pluginuri. Fac crearea și modificarea tipurilor de postări personalizate mult mai simplă și au o interfață de utilizare mult mai bună decât aș putea crea vreodată.