Doriți să obțineți valori ale câmpurilor personalizate folosind un scurt cod? Deși probabil există un plugin pentru asta, am creat o secvență rapidă de cod pe care o puteți folosi pentru a obține valoarea unui câmp personalizat cu un scurt cod în WordPress.
Instrucțiuni:
Tot ce trebuie să faceți este să adăugați acest cod în fișierul functions.php al temei dvs. sau într-un plugin specific site-ului:
add_shortcode('field', 'shortcode_field');
function shortcode_field($atts){
extract(shortcode_atts(array(
'post_id' => NULL,
), $atts));
if(!isset($atts[0])) return;
$field = esc_attr($atts[0]);
global $post;
$post_id = (NULL === $post_id) ? $post->ID : $post_id;
return get_post_meta($post_id, $field, true);
}
[field "my_key"] [field "my_key" post_id=1]
Notă: Dacă aceasta este prima dată când adăugați fragmente de cod în WordPress, consultați ghidul nostru despre cum să adăugați corect fragmente de cod în WordPress, pentru a nu vă defecta accidental site-ul.
Dacă ți-a plăcut acest fragment de cod, te rugăm să iei în considerare și celelalte articole de pe site, cum ar fi: cele mai bune 10 plugin-uri de testimoniale WordPress pentru a adăuga dovadă socială și cum să creezi un formular de contact în WordPress.
Al meu scoate doar cuvântul Array?
Salut, fragment de cod excelent 🙂
Este posibil să afișăm un mesaj de eroare atunci când fișierul personalizat nu există?
Este greu să depistezi erorile când nu există nicio ieșire.
Cu stimă
Rudi
Aveți idee cum să afișez un câmp personalizat ca link?
Am încercat asta: test dar nu funcționează. Mulțumesc.
Bună,
Funcționează bine pentru câmpurile personalizate ale plugin-urilor, mulțumesc! Dar cum să redau câmpuri standard precum „Titlu” sau „Rezumat”?
mulțumesc foarte mult. treabă bună
Salut Kasra, cu plăcere. Nu uitați să ne urmăriți pe Facebook și Twitter. 🙂
Cum să globalizez valoarea câmpului personalizat, deoarece nu este declanșată în meta descriere de rankmath.
Acest articol m-a ajutat enorm. Mulțumiri din Vietnam.
Mulțumesc, a funcționat ca prin magie 🙂
mulțumesc mult. asta funcționează perfect
Mă bucur că a ajutat, Nail 🙂
Mamma mia – funcționează perfect! Mulțumesc mult! 🙂
Vă mulțumesc pentru acest fragment de cod uimitor, funcționează ca prin magie ?
Mă bucur că a funcționat pentru tine
Salut
Nu reușesc să-l fac să funcționeze. Trebuie să editez scurt codul și să înlocuiesc cuvintele: my_key cu numele câmpului meu personalizat?
Și trebuie să schimb ceva în codul pe care l-ați pus în functions.php sau să-l lipiți așa cum este? Mulțumesc mult
Fragment de cod grozav, mulțumesc. Funcționează excelent pe paginile mele de produse woocommerce, dar nu pe coș și la finalizare. Orice sfat cum să remediez acest lucru ar fi foarte apreciat!
Nicio idee? 🙁
Salut! Vă mulțumesc pentru cod.
Este posibil să personalizați fragmentul de cod pentru a avea și un scurt cod [field “my_key” page_id=1]?
Salut Marco, dacă ar fi să ghicesc, folosești numele greșit al câmpului personalizat. unele plugin-uri vor folosi o linie de subliniere înainte de numele câmpului personalizat, de exemplu _description. acest lucru se face pentru a ascunde câmpurile pe partea de administrare.
puteți folosi acest fragment de cod în tema dvs. pentru a afișa o listă a tuturor câmpurilor personalizate. Acesta va afișa o notificare de administrator în ecranul de editare a postării în panoul de administrare și va lista totul. Puteți elimina acest fragment de cod atunci când aveți numele corect al câmpului personalizat.
http://wpsnipp.com/index.php/functions-php/show-absolutely-custom-fields-post/
Nu, „description” este numele câmpului, importat de plugin-ul „CultureObject”
introduc un nou „testfield” cu textul „textfield for post” în ecranul de editare a postării.
„description” nu apare, textul „textfield for post” este vizibil.
Am căutat în baza de date și ambele câmpuri apar. Cu excepția textului/conținutului, ele sunt identice.
De ce un câmp personalizat importat de CulturObject se comportă diferit de un câmp personalizat creat manual.
Este diferența că acele câmpuri pe care le completez manual (și care apar) sunt în postări obișnuite, iar câmpurile personalizate importate de CultureObject sunt în Postări Personalizate? (care nu apar)
Acesta este grozav. Mulțumesc mult!
Nu scoate nimic într-un bloc de text Grid Element, într-un Post Grid (Visual Composer)
Mulțumesc! Căutam pe Google ultimele 2 zile!!!
Mulțumesc pentru articol, m-a ajutat foarte mult 🙂
Mulțumesc pentru articol, m-a ajutat foarte mult 🙂
[…] Sursă: http://wpsnipp.com/index.php/functions-php/get-custom-field-value-with-shortcode/ […]
Când încerci să pui conținutul unui câmp personalizat în interiorul altui shortcode, în funcție de cum este configurat celălalt shortcode, ai putea renunța la ghilimele duble? De exemplu:
[nume_camp_personalizat]în loc de[camp "nume_camp_personalizat"]În acest fel, un shortcode ca acesta ar putea funcționa (corect?):
[formular-contact to="[nume_camp_personalizat]"]Pentru că dacă un shortcode cu ghilimele se află în interiorul unui shortcode cu ghilimele, ghilimelele/parantezele de la sfârșit îl încurcă (adică nu funcționează).Nu văd nicio ghilimele dublă în funcția/fragmentul dvs., așa că nu eram sigur.
Mulțumesc mult!
Am încercat
[camp]nume_camp_personalizat[/camp]și nu a funcționat.Postez detalii despre shortcode imbricat mâine, aruncă o privire, îți va oferi o idee mai bună despre cum trebuie să funcționeze cu shortcode încorporat.
Nu, nu poți face asta, nu ar mai funcționa. Ce încerci să faci cu shortcode-urile imbricate? imbricarea shortcode-urilor nu va funcționa nici ea, doar se va strica.
Kevin, cred că acesta este EXACT ceea ce speram să găsesc. Mulțumesc pentru asta. Vreau să fiu sigur cum să-l folosesc. Când ai folosi-o pe a doua în loc de prima? : [camp „cheie_mea”][camp „cheie_mea” id_post=1]
Mulțumesc.
Ei bine, dacă adaugi shortcode-ul la o postare, poți folosi [camp „cheie_mea”] cheia_mea este numele câmpului personalizat. Cealaltă metodă [camp „cheie_mea” id_post=1] îți va permite să definești ID-ul postării pentru a obține valoarea câmpului personalizat al unei postări specifice.
Ai putea avea cod HTML într-un câmp personalizat care „iese”? De exemplu:
Astăzi este cea mai grozavă zi din lume. Blah [camp „lista_imagini”] Imaginile de mai sus sunt grozave, nu-i așa? Blah [camp „bloc_html1”] Blah [camp „bloc_html2”] Mulțumesc că ai citit blogul meu.
Și, doar ca să fie clar, dacă nu adaugi „id_post=”, va extrage doar câmpul personalizat pentru postarea/pagina pe care te afli deja – postarea curentă, corect?
1. Fără ID, da, va extrage doar câmpul personalizat al postării curente. 2. Nu văd de ce nu ar funcționa bine, ar trebui să poți pune orice în câmp și se va afișa.
Întrebarea mea este dacă redă conținutul câmpului personalizat ca și cum ar fi fost introdus în Editorul Vizual sau ca și cum ar fi fost introdus în Editorul HTML.
Nu, va reda HTML-ul fără probleme.
Adăugarea acestui cod în function.php mi-a dezactivat site-ul. Ce am făcut greșit?
Shovan Sargunam de la echipa http://tamilbabyname.org
Primești vreo eroare?
A lipsește în linia 6, înainte de return;
Funcționează bine, în afară de asta 🙂
Super, mulțumesc, am actualizat fragmentul,
[…] Această postare a fost menționată pe Twitter de wp_freak, WPSNIPP. WPSNIPP a spus: #wordpress Obține valoarea câmpului personalizat cu shortcode http://bit.ly/fWRRa3 #blog te rog RT 🙂 […]