Noțiuni introductive cu câmpurile personalizate avansate

În acest tutorial, vă voi arăta principiile de utilizare a pluginului Advanced Custom Fields (ACF). ACF este un plugin destul de mare, astfel încât acest articol nu va explica absolut tot ceea ce oferă, dar ar trebui să fie suficient pentru a începe să vă adăugați propriile meta date și să le afișați în tema dvs.. 

La momentul scrisului, există două versiuni ale ACF: 4 și 5. Acest articol se bazează pe versiunea 4, dar ar trebui să se aplice și în cazul în care utilizați versiunea 5.

Ce este câmpurile personalizate avansate?

Câmpurile personalizate avansate este o interfață de utilizator pentru adăugarea de câmpuri personalizate sau meta date în WordPress. Câmpurile personalizate vă permit să vă extindeți postările sau paginile cu mai multe date. Să analizăm un scenariu comun:

Aveți un tip de postare numit film și doriți să atașați un punctaj din zece la partea de jos a fiecărei recenzii, împreună cu alte date. Acum, puteți pune aceste date în postarea dvs., dar dacă mai târziu doriți să utilizați aceste date într-un alt mod? Poate doriți să mutați scorul deasupra recenziei; în acest caz, va trebui să editați manual fiecare recenzie și să mutați manual acest scor - nu este grozav.

WordPress nu are funcții integrate pentru crearea câmpurilor personalizate, dar acestea includ numai funcționalități de bază și necesită crearea unor câmpuri programate. ACF are multe tipuri încorporate de câmp, dintre care unele includ:

  • text
  • e-mail
  • Editor WYSIWYG
  • imagine
  • fişier
  • selectați caseta
  • selector de date
  • selector de culoare

Pe lângă faptul că aveți câmpuri încorporate, ACF vă oferă o selecție de reguli care pot fi utilizate pentru a determina unde sunt afișate câmpurile în cadrul administratorului dvs. WordPress. Acest lucru este cu adevărat util pentru păstrarea zonei de administrare cât mai curată posibil. De exemplu, puteți afișa un grup de câmpuri personalizate numai dacă este tipul dvs. de postare comentarii și șablonul de pagină este recomandată.

Noțiuni de bază

Înainte de a începe adăugarea unor câmpuri, trebuie să instalați pluginul ACF. Pentru a face acest lucru, de la tabloul de bord WordPress du-te la Plugin-uri> Adăugați noi. De la Adăugați pluginul ecran, căutați Câmpuri personalizate avansate și faceți clic pe Instalare. Asigurați-vă că ați activat pluginul - dacă a fost instalat corect, atunci ar trebui să vedeți acum câmpuri customizate meniu din cadrul administratorului WordPress.

Admițând tema unui site de revizuire a filmelor, vom crea câteva domenii relevante. Pentru a urmări împreună cu acest tutorial, veți avea nevoie de un tip de post particularizat numit film. Pentru a afla cum să creați tipuri de posturi, mergeți la acest alt articol Tuts +. Acestea fiind spuse, metodele afișate aici vor funcționa pentru multe alte tipuri de câmpuri personalizate, iar logica pentru crearea și afișarea câmpurilor va rămâne aceeași.

Crearea de grupuri de câmp

Grupurile de teren sunt exact ceea ce spun ei: grupuri de câmpuri. Folosind exemplul numitului tip post film, am putea dori să includem următoarele date:

  • anul eliberării
  • director
  • rating din zece
  • Linkul IMDb

Aceste câmpuri apar în mod logic într-un grup, toate fiind legate de același tip de post. Folosind câmpurile de mai sus, putem începe să ne gândim la tipurile de câmpuri de care avem nevoie pentru aceste date.

  • anul eliberării: număr
  • director: text
  • rating din zece: număr
  • IMDb link: text (nu există un câmp de url)

Pentru a începe să adăugați un grup de câmp, faceți clic pe câmpuri customizate meniu din tabloul de bord WordPress. Acum, faceți clic pe Adăuga nou buton. Veți fi prezentat acum cu Adăugați un grup de câmpuri noi ecran. Înainte de a face orice altceva, să oferim grupului nostru de câmp un nume introducând în caseta de titlu - am sunat-o pe a mea Datele filmului.

Apoi, putem adăuga toate domeniile noastre. Apasă pe Adăugați câmpul pentru a începe. Veți vedea acum un formular care are următoarele câmpuri:

  • Etichetă de câmp este numele care apare la editare. Mi se pare util să încep cu același prefix pe fiecare câmp, de ex. Anul filmului, Regizor, etc.
  • Numele domeniului este numele pe care îl veți folosi în codul dvs. pentru a afișa câmpul. După introducerea etichetei de câmp, aceasta ar trebui să fie în mod automat populate. Acesta este un singur cuvânt fără spații, dar sunt permise liniuțe și cratime. De exemplu, Anul filmului ca o etichetă de câmp ar deveni movie_year ca nume de domeniu.
  • Tip de câmp este un câmp de text de bază (deși ACF oferă și opțiuni mai avansate).
  • Instrucțiuni pe teren sunt instrucțiuni pe care autorii le pot vedea atunci când adaugă datele în ecranul de editare, de ex. "Anul filmului ar trebui să fie întotdeauna data lansării în SUA".
  • Necesar este o casetă radio unde alegeți da sau nu. Alegerea "da" înseamnă că câmpul trebuie completat pentru a salva pe ecranul de editare post.
  • Valoare implicită este valoarea care va apărea automat la crearea unei postări noi.
  • Text de text apare în intrarea pe ecranul de editare.
  • Prepend defineștece apare înainte de intrarea pe ecranul de editare.
  • Adăuga definește ce apare după intrarea pe ecranul de editare.
  • Formatarea dăaveți două opțiuni: "Conversia HTML în etichete" (implicit) sau "fără formatare". Conversia HTML în etichete înseamnă că orice HTML din intrarea dvs. va fi redat pe ecran; fără formatare înseamnă că orice HTML va fi ignorat.
  • Limita de caractere ne permite să limităm cantitatea de caractere pentru o intrare. De exemplu, pe site-ul nostru an trebuie să limităm caracterele la patru.
  • Condiționalitate logică este o caracteristică mai avansată pe care nu o vom căuta în acest articol.

Toate aceste câmpuri apar pentru text introduceți câmpurile pe unele alte tipuri de câmp, este posibil ca unele dintre aceste opțiuni să nu fie afișate sau pot exista unele opțiuni suplimentare. Așa cum vom folosi de asemenea număr câmp, există câteva opțiuni suplimentare disponibile pentru noi:

  • Valoarea minimă este valoarea minimă a numărului permisă în câmp. Pentru scorul nostru din zece câmpuri, ar fi rezonabil să setăm acest lucru la unul, deoarece nu vom înscrie nimic ca zero.
  • Valoare maximă este valoarea maximă a numărului care trebuie permisă în câmp. Din nou, am putea folosi acest lucru pentru scorul nostru din zece câmpuri și avem valoarea de zece, deoarece nu vrem ca această valoare să fie depășită.
  • Dimensiunea pasului definește valoarea prin care un număr crește atunci când este apăsată o săgeată. În cazul scorului filmului, ar fi o idee bună să setați acest lucru ca unul.

Astfel mi-am creat câmpurile:

  • Etichetă de câmp: Anul filmului
  • Numele domeniului: movie_year
  • Tipul campului: Număr
  • Necesar: da
  • Valoare minimă: 1900
  • Valoare maximă: 2050

Rețineți valorile minime și maxime aici - le-am setat pe acestea pentru a adăuga o validare foarte fundamentală, deoarece este puțin probabil să avem un film mai vechi de 1900 și unul mai mic decât 2050 în durata de viață a site-ului.

  • Etichetă de câmp: Regizor
  • Numele domeniului: Regizor
  • Tipul campului: Text
  • Necesar: da
  • Formatare: Nicio formatare

Din moment ce vom fi formatarea producției noastre în HTML, nu vrem ca editorii să poată adăuga HTML aici care ar putea interfera cu aspectul nostru. Prin urmare, aici nu a fost selectat "formatare".

  • Etichetă de câmp: Scorul filmului
  • Numele domeniului: movie_score
  • Tipul campului: Număr
  • Necesar: da
  • Valoare minimă: 1
  • Valoare maximă: 10
  • Dimensiune pas: 1

Din nou, avem o valoare minimă și maximă setată aici pentru a adăuga o anumită validare; scorurile noastre sunt din zece, deci nu vrem ca editorii să poată introduce un scor mai mare decât acesta. De asemenea, nu vrem să fie inserate scoruri mai mici decât una.

  • Etichetă de câmp: Movie IMDb Link
  • Numele domeniului: movie_imdb_link
  • Tipul campului: Text
  • Instrucțiuni pe teren: Inserați adresa URL completă IMDb aici. de exemplu. http://www.imdb.com/title/tt2015381/
  • Necesar: da
  • Formatare: Nicio formatare

Am adăugat câteva instrucțiuni de câmp la această intrare, pentru că nu există URL- tipul câmpului, deci este greu de validat. Instrucțiunile ar trebui să facă mai ușor editorii să înțeleagă cum să folosească câmpul.

După ce ați adăugat toate câmpurile dvs., asigurați-vă că faceți clic pe Actualizați buton. Odată ce ați făcut clic pe aceasta, veți reveni la Editați grupul de câmpuri pagină. Există doar câteva lucruri pe care trebuie să le facem pe acest ecran pentru a vă face câmpurile să funcționeze corect.


Sub câmpul de câmp este o casetă numită Locație-acest lucru ne permite să controlam unde se afișează câmpurile personalizate. Nu vrem decât câmpurile personalizate să afișeze tipul de postare film. În primul drop-down, selectați Tip post, în al doilea drop-down selectați este egal cu, și în cea de-a treia selecție film.

Ultimul lucru pe care trebuie să-l facem aici este setat acolo unde câmpul nostru personalizat va apărea pe ecranul de editare. Pentru a face acest lucru, derulați în jos puțin mai departe spre Opțiuni secțiune. Acest lucru ne permite să alegem unde va apărea metabox-ul câmpului personalizat și ce tip este și ne dă posibilitatea de a ascunde alte lucruri de pe ecranul de editare.

Opțiunile sunt următoarele:

  • Comandă nu: dacă aveți mai multe grupuri de câmpuri, acestea sunt create în ordine de la cea mai mică la cea mai înaltă.
  • Poziţie are trei opțiuni:
    • Latură
    • Mare (după titlu)
    • Normal (după conținut)
  • Stil: standard sau fără sudură (a se vedea imaginea de mai jos pentru diferența dintre acestea).
  • Ascundeți pe ecran: aceasta este o listă de casete de selectare care vă permit să ascundeți lucruri de care nu aveți nevoie, cum ar fi etichete, categorii sau comentarii.

Opțiunile pe care le-am folosit sunt:

  • Poziţie: Latură
  • Stil: Normal

Restul au rămas ca defaults.

Puteți verifica dacă câmpurile dvs. sunt afișate corect, făcând un nou post (în acest caz în film post tip). Dacă toate au funcționat bine, atunci veți vedea metaboxul. Acum este momentul potrivit pentru a adăuga câteva date de testare.

Adăugarea de câmpuri la tema dvs.

Acum, că ați creat grupurile de câmpuri și aveți câteva date de testare, puteți începe să afișați datele în tema tematică sau copil.

Puteți utiliza standardul WordPress get_post_meta () funcția cu ACF, dar este recomandat să utilizați funcțiile proprii ale ACF, deoarece ACF va formata valorile în funcție de tipul de câmp pe care l-ați creat. Vom folosi ACF-urile campul() funcţie. Această funcție afișează câmpul personalizat și ia un parametru al câmpului, de exemplu:

Să abordăm meta datele noastre. Vom avea toate aceste informații într-un singur div.

  • :
  • :
  • : / 10
  • "target =" _ blank ">

Acest cod este destul de simplu - folosim _E funcția de a internaționaliza șirurile noastre și ecou lor, și apoi folosind ACF campul() metodă de a ecou valoarea campului pe care l-am creat. Toate acestea au fost introduse într-o listă neordonată, în interiorul a div element cu o clasă de Comentarii-meta, astfel încât să putem viza cu CSS-ul nostru.

Deci, unde merge acest cod? În acest caz, este mai bine să creați un nou șablon pentru tipul dvs. de postare. Pentru a face acest lucru, faceți o copie a temei dvs. single.php fișier și denumiți-l single-postname.php-în cazul nostru single-movie.php. Fiecare single.php vor arăta diferit, dar ar trebui să aibă un singur lucru în comun: o buclă WordPress. Buclele dvs. WordPress ar trebui să arate astfel:

  

Câmpurile personalizate pot merge în afara bucla și exact unde le plasați depinde de modul în care doriți ca pagina să pară. În cazul meu (folosind tema implicită Twenty Fourteen), i-am pus chiar sub buclă și am aplicat un anumit stil de bază .Comentarii-meta CSS.


Concluzie

Am acoperit elementele de bază ale pluginului Advanced Custom Fields. Adică, am adăugat câmpuri și le afișăm acum pe site-ul nostru. Mai sunt mult mai multe la ACF, totuși, și tocmai am zgâriat suprafața. Există mai multe tipuri de câmpuri pe care le puteți utiliza, precum și funcții mai avansate, cum ar fi logica condițională.

Nu ezitați să lăsați întrebări, comentarii și feedback general în formularul de mai jos!

Cod