În Partea 1, Partea 2 și Partea 3 din seria tutorialului personalizat pentru șabloanele meta-box, am învățat cum să facem o casetă de metode reutilizabile care să obțină toate informațiile despre câmp dintr-o matrice ușor de citit și ușor de duplicat. O mulțime de date sunt simple de a utiliza doar prin ecou câmpul meta în șablonul dvs. sau printr-o funcție, dar unele dintre câmpuri sunt mai complexe și necesită un pic mai mult finesse pentru a utiliza în mod corespunzător. Acest tutorial vă va oferi o idee de bază despre modul de utilizare a acestor date și poate fi expusă în nenumărate moduri.
WordPress oferă mai multe moduri de a obține meta date postate.
Cea mai simplă modalitate de a afișa datele este cu the_meta ()
funcţie. Poți scăpa acest drept în tine single.php șablon, dar nu vă va oferi rezultatele pe care probabil că le urmați. Este o ieșire foarte literală a datelor într-o listă neordonată, prefixată cu cheia fiecărui câmp, după cum se arată în imagine.
Cea mai obișnuită modalitate de a obține datele salvate într - un câmp post meta este cu get_post_meta ()
funcţie. Aceasta este o modalitate simplă de a direcționa un anumit câmp și de ao stoca într-o variabilă care poate fi utilizată ulterior.
$ Custom_text = get_post_meta ($ post-> ID, 'custom_text', true);
Utilizarea acestui cod în buclă unică de post ar plasa în variabila textul "Un text într-o intrare de bază de text" $ custom_text
care ar putea fi apoi reluate sau filtrate, sau orice ai dori să faci cu șirul. Când vă ocupați doar de câteva câmpuri, acesta este probabil calea de urmat, dar în exemplul nostru, lucrăm cu 11 domenii diferite. Apelați-le pe toate în mod individual cu această funcție va bloat codul dvs. inutil, deoarece există o modalitate de a obține toate datele dintr-o dată.
Metoda mea preferată când lucrez în acest domeniu este de a folosi get_post_custom ()
funcţie. Cu această funcție, putem stoca toate câmpurile post meta personalizate într-un singur matrice și apoi putem extrage datele dorite cu cheia matricei.
$ post_meta_data = get_post_custom ($ post-> ID);
ne va da o matrice care arata astfel:
Array ([custom_text] => Array ([0] => Unele text într-o intrare de bază a textului) [custom_texttarea] => Array ([0] => (de exemplu, în cazul în care nu există o limbă străină) [custom_checkbox] => Array ([ 0] => on) [custom_select] => Array ([0] => unul) [custom_radio] => Array ([0] i: 0; s: 3: "un"; i: 1; s: 5; "trei";) [custom_post_id] => Array ([0] => 109) [custom_date] => Array ] => 05/25/2012) [custom_slider] => Array ([0] => 15) [custom_image] => Array ([0] => 413) [custom_repeatable] => Array : 3: i: 0; s: 22: "text dintr-un repetabil"; i: 1; s: 27: "mai mult text dintr-un repetabil"; ";))
După cum puteți vedea din această matrice, WordPress stochează fiecare câmp ca o matrice deoarece este posibil să aibă mai mult de o valoare pentru același câmp. Veți observa, de asemenea, că câteva câmpuri sunt serializate. Să ne grăbim mai mult să manipulăm datele din fiecare câmp și să acoperim modul de remediere a acestora.
Câmpurile de text și textarea sunt destul de simple de rezolvat. Puteți să le ecou cu unul dintre următoarele exemple:
echo $ post_meta_data ['custom_text'] [0]; echo apply_filters ('the_content', $ post_meta_data ['custom_textarea'] [0]); $ custom_checkox = $ post_meta_data ['custom_checkbox'] [0]; dacă ($ custom_checkbox == 'pe') do_stuff ();
Prima linie va scoate pur și simplu șirul de tip as-is, iar a doua linie va transforma rupturile liniei în paragrafe cu WordPress " continutul
filtru. Puteți utiliza aceleași metode și pentru câmpurile selectate, radio, data și glisorul.
Ultima linie arată modul în care puteți testa dacă a fost selectată o casetă de selectare sau nu. Dacă este, puteți efectua diverse funcții sau orice număr de lucruri.
Câmpurile de grup din caseta de validare și câmpurile repetabile stochează rețele care se serializează în baza de date. Înainte de a putea emite aceste date, trebuie să le neserializăm.
$ custom_checkbox_group = neserializează ($ post_meta_data ['custom_checkbox_group'] [0]); $ custom_repeatable = neserializează ($ post_meta_data ['custom_repeatable'] [0]);
unserialize ()
funcția este o funcție de bază PHP care convertește datele noastre într-o matrice care este mai ușor de utilizat. Codul de mai sus îmi va da două tablouri care arată astfel:
Array ([0] => unul [1] => trei) Array ([0] => text dintr-un câmp de text repetabil [1] => mai mult text dintr-un câmp de text repetabil!
Acum pot să fac buclă prin matrice, oricum vreau să le folosesc în producția mea. Este important să rețineți că, în câmpul repetabil, dacă faceți acest lucru ca și exemplul nostru din Partea 3 a tutorialului nostru personalizat pentru șablon meta-box, cheile din matrice vor fi stocate automat în ordinea de la 0, 1, 2, 3 , etc. și nu în ordinea în care au fost inițial introduse înainte de a le sorta.
echo "
Acest exemplu va afișa o listă neordonată a fiecărui șir salvat în $ custom_repeatable
mulțime.
Pentru câmpurile noastre Post List și Image, am salvat un ID. S-ar putea să existe cazuri foarte rare în care doriți să obțineți doar ID-ul, dar cel mai probabil veți dori să utilizați ID-ul pentru a obține mai multe informații.
$ custom_post_id = $ post_meta_data ['custom_post_id'] [0]; echo ".get_the_title ($ custom_post_id). ''; $ custom_image = $ post_meta_data ['custom_image'] [0]; echo wp_get_attachment_image ($ custom_image, 'thumbnail');
Acest tutorial prezintă modalitățile cele mai de bază pe care le puteți utiliza datele pe care le-am stocat cu casetele meta personalizate reutilizabile. Fiind capabil să salveze date suplimentare și să le folosească în teme și pluginuri deschide o lume cu totul nouă de posibilități cu WordPress. Pentru ce le veți folosi?