Cum să creați și să utilizați câmpuri personalizate WordPress

Publicat: 2020-04-23

Unul dintre principalele avantaje ale WordPress este versatilitatea sa, care este posibilă datorită caracteristicilor de extensibilitate încorporate. Printre diferitele formule de extensie pe care le oferă găsim câmpuri personalizate :

WordPress are capacitatea de a permite autorilor de postări să atribuie câmpuri personalizate unei postări. Aceste informații suplimentare arbitrare sunt cunoscute sub numele de metadate .

Metadatele sunt gestionate cu perechi cheie/valoare . Cheia este numele elementului de metadate. Valoarea este informația care va apărea în lista de metadate pentru fiecare postare individuală cu care sunt asociate informațiile.

Documentație WordPress.org

De exemplu, dacă dorim să creăm metadate despre concepte legate de lumea motorie, am avea lucruri precum:

  • Marca : Ford
  • Model : Focus
  • Culoare : alb
  • Putere : 110 CP
  • etc

În postarea de astăzi vă voi arăta cum să creați câmpuri personalizate, cum să le utilizați și cum vă pot ajuta ca utilizator și/sau dezvoltator WordPress. Vă rugăm să rețineți că va trebui să aveți niște înțelegeri de bază despre cum să codificați în WordPress... dar sper că veți putea urmări cu ușurință postarea, mai ales când vă arăt cum să utilizați un plugin uimitor pentru a lucra cu câmpuri personalizate: Câmpuri personalizate avansate.

Cum funcționează câmpurile personalizate WordPress

Cel mai bun mod de a înțelege ce sunt câmpurile personalizate și cum funcționează ele este să aruncați o privire la baza de date WordPress. După cum probabil știți deja, de fiecare dată când creați o postare, o pagină sau (aproape) orice alt tip de conținut în WordPress, acest nou conținut este stocat într-un tabel numit wp_posts (prefixul se poate schimba).

Tabelele dintr-o bază de date sunt la fel ca orice alt tabel cu care ați lucrat anterior. Practic, au un set de coloane care definesc „ce poți stoca” și rânduri cu informațiile specifice. În cazul wp_posts , coloanele sunt lucruri precum titlu , conținut , autor , data publicării și așa mai departe. Nimic de lux, sincer să fiu:

tabelul wp_posts într-o bază de date WordPress.
tabelul wp_posts într-o bază de date WordPress.

Una dintre „problemele” utilizării tabelelor este că informațiile pe care le puteți stoca în ele sunt limitate la coloanele pe care le au. Dacă doriți să stocați informații despre un nou concept, nu veți putea. Deci, cum puteți crea câmpuri personalizate, dacă tabelul este deja setat? Ei bine, destul de simplu, ai nevoie doar de o masă nouă concepută pentru asta.

În fiecare bază de date WordPress există un alt tabel numit wp_postmeta , ca următorul:

tabelul wp_postmeta în baza de date WordPress.
tabelul wp_postmeta în baza de date WordPress.

După cum puteți vedea în captura de ecran anterioară, tabelul de metadate este conceput astfel încât să putem crea perechi cheie/valoare utilizând coloanele meta_key și meta_value și să asociem fiecare pereche cu un anumit conținut folosind coloana post_id . Destul de usor!

Deci, să aruncăm o privire mai atentă la modul în care putem lucra cu acest tabel!

Cum se creează un câmp personalizat nou

După cum am văzut deja, câmpurile personalizate sunt întotdeauna asociate cu o anumită postare. Prin urmare, v-ați aștepta la un fel de interfață cu utilizatorul în editor pentru, ei bine, editarea lor, nu? Din păcate, dacă arunci o privire la Gutenberg, nu există niciun...

Pentru a edita câmpuri personalizate în editorul WordPress, trebuie să activați un panou avansat. Doar faceți clic pe pictograma din dreapta sus din editor și apoi faceți clic pe Opțiuni :

Setări Gutenberg
Setări Gutenberg.

Aceasta va deschide o nouă fereastră cu diferitele panouri disponibile în Gutenberg. Găsiți unul numit Câmpuri personalizate și activați-l:

Cum să activați câmpurile personalizate în Gutenberg
Cum să activați câmpurile personalizate în Gutenberg.

Odată activat, puteți crea și edita cu ușurință câmpurile personalizate ale postării:

Câmpuri personalizate în Gutenberg
Câmpuri personalizate în Gutenberg.

Această interfață simplă ne permite să creăm câte perechi cheie/valoare dorim. În captura de ecran de mai sus, de exemplu, vedeți cum am adăugat câteva dintre câmpurile pe care le introduc la începutul acestei postări: nelio_brand , nelio_model , nelio_color și nelio_hp .

Cum să utilizați un câmp personalizat

Pentru a utiliza un câmp personalizat, aveți nevoie de trei lucruri: (a) identificatorul unei postări, (b) numele câmpului pe care doriți să-l utilizați și (c) să decideți unde doriți să îl utilizați. De exemplu, să presupunem că vreau să afișez câmpul nelio_brand pe care l-am creat în exemplul de mai sus la sfârșitul unei postări. Pentru a-i prelua valoarea, există o funcție numită get_post_meta pe care o putem folosi după cum urmează:

 function nelio_add_brand_field( $content ) { $brand = get_post_meta( get_the_ID(), 'nelio_brand', true ); return "{$content}\n<p><strong>Brand:<strong> {$brand}</p>"; } add_filter( 'the_content', 'nelio_add_brand_field' );

Observați că în exemplul anterior abordăm cele trei lucruri pe care le-am menționat anterior:

  • Primul parametru al get_post_meta este tocmai identificatorul postării care mă interesează. În acest caz, folosim get_the_ID() , care returnează ID-ul postării curente.
  • Al doilea parametru este numele câmpului nostru meta (în acest caz, nelio_brand ).
  • În cele din urmă, folosim câmpul meta din front-end, ca ceva ce vrem să arătăm chiar la sfârșitul conținutului postării. Și vă puteți da seama pentru că îl preiau și îl folosesc în timpul the_content .

Rezultatul este ceva similar cu ceea ce puteți vedea în următoarea captură de ecran:

Captură de ecran a unei postări care arată un câmp personalizat imediat după conținutul acesteia.
Captură de ecran a unei postări care arată un câmp personalizat imediat după conținutul acesteia.

Dar acesta este doar un exemplu, desigur! Puteți utiliza câmpurile personalizate în mai multe moduri, altele decât „imprimarea a ceva în front-end”. De exemplu, Nelio A/B Testing este unul dintre pluginurile pe care le-am creat și este conceput pentru a rula teste separate într-un site WordPress. Un test A/B necesită crearea de conținut alternativ, iar pluginul nostru folosește câmpuri personalizate pentru a eticheta conținutul alternativ ca atare și limitează modul în care și când acest conținut este accesibil de către un vizitator.

Funcții WordPress pentru gestionarea câmpurilor personalizate

În același mod în care avem o metodă de a prelua valoarea unui câmp personalizat ( get_post_meta ), WordPress are metode suplimentare pentru a crea, actualiza și șterge în mod programatic câmpurile personalizate: add_post_meta , update_post_meta și delete_post_meta . Aceste funcții funcționează așa cum v-ați aștepta, așa că nu vă voi deranja cu mai multe explicații...

Ce este și cum se utilizează câmpurile personalizate avansate

Acum că știți cum funcționează câmpurile personalizate în WordPress, cred că vă pot oferi deja vestea bună: există mai multe plugin-uri care simplifică foarte mult procesul de lucru cu câmpuri personalizate!

Unul dintre cele mai cunoscute și mai bine evaluate pluginuri pentru a crea metadate într-un site WordPress este Advanced Custom Fields. Cu acesta, nu numai că vei putea defini câmpuri personalizate într-un mod mai simplu, dar vei avea și posibilitatea de a te bucura de o interfață de utilizator îmbunătățită pentru a trata aceste câmpuri. Această interfață se asigură că valorile pe care le setați au sens și sunt semnificative din punct de vedere semantic: date, imagini, galerii, intervale, numere... ce spuneți!

Captură de ecran a pluginului Advanced Custom Fields
Captură de ecran a pluginului Advanced Custom Fields.

Dacă doriți să aflați mai multe despre ACF, există o mulțime de resurse. Dar cred că această discuție a lui Jo Minney te poate ajuta să începi:

Sperăm că această mică introducere în câmpurile personalizate vă va ajuta pe drumul spre a deveni un dezvoltator WordPress mai bun!

Imagine prezentată de Polina Rytova pe Unsplash.