X

Obține valoarea câmpului personalizat cu shortcode

Fragmente de IsItWP

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.

Comentarii   Lasă un răspuns

  1. Al meu scoate doar cuvântul Array?

  2. 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

  3. Aveți idee cum să afișez un câmp personalizat ca link?
    Am încercat asta: test dar nu funcționează. Mulțumesc.

  4. Bună,

    Funcționează bine pentru câmpurile personalizate ale plugin-urilor, mulțumesc! Dar cum să redau câmpuri standard precum „Titlu” sau „Rezumat”?

  5. mulțumesc foarte mult. treabă bună

    1. Salut Kasra, cu plăcere. Nu uitați să ne urmăriți pe Facebook și Twitter. 🙂

  6. Cum să globalizez valoarea câmpului personalizat, deoarece nu este declanșată în meta descriere de rankmath.

  7. Acest articol m-a ajutat enorm. Mulțumiri din Vietnam.

  8. Mulțumesc, a funcționat ca prin magie 🙂

  9. mulțumesc mult. asta funcționează perfect

    1. Mă bucur că a ajutat, Nail 🙂

  10. Mamma mia – funcționează perfect! Mulțumesc mult! 🙂

  11. Vă mulțumesc pentru acest fragment de cod uimitor, funcționează ca prin magie ?

    1. Mă bucur că a funcționat pentru tine

  12. 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

  13. 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!

    1. Nicio idee? 🙁

  14. Andreas Kyriakidis November 1, 2016 at 6:41 am

    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]?

  15. 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/

    1. 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)

  16. Jarod Emerson Thornton August 5, 2015 at 11:56 am

    Acesta este grozav. Mulțumesc mult!

  17. Nu scoate nimic într-un bloc de text Grid Element, într-un Post Grid (Visual Composer)

  18. Mulțumesc! Căutam pe Google ultimele 2 zile!!!

  19. Mulțumesc pentru articol, m-a ajutat foarte mult 🙂

  20. Mulțumesc pentru articol, m-a ajutat foarte mult 🙂

  21. 30 Extremely Useful Wordpress Code Snippets & Hacks | Web Design Habits October 14, 2011 at 6:33 am
  22. Cliff Paulick July 21, 2011 at 5:56 pm

    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!

    1. Cliff Paulick July 21, 2011 at 6:16 pm

      Am încercat [camp]nume_camp_personalizat[/camp] și nu a funcționat.

      1. 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.

    2. 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.

  23. Cliff Paulick July 19, 2011 at 6:47 pm

    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.

    1. 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.

      1. Cliff Paulick July 19, 2011 at 8:03 pm

        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. 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.

        2. Cliff Paulick July 19, 2011 at 9:21 pm

          Î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.

        3. Nu, va reda HTML-ul fără probleme.

  24. 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

    1. Primești vreo eroare?

      1. A lipsește în linia 6, înainte de return;

        Funcționează bine, în afară de asta 🙂

        1. Super, mulțumesc, am actualizat fragmentul,

  25. Tweets that mention Wordpress Get custom field value with shortcode – wpsnipp.com Wordpress code snippets for your blog -- Topsy.com January 20, 2011 at 6:14 pm

    […] 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 🙂 […]

Adaugă un comentariu

Suntem bucuroși că ați ales să lăsați un comentariu. Vă rugăm să rețineți că toate comentariile sunt moderate conform politicii noastre de confidențialitate, iar toate linkurile sunt nofollow. NU folosiți cuvinte cheie în câmpul nume. Să avem o conversație personală și semnificativă.

Lista de verificare pentru lansarea WordPress

Lista de verificare finală pentru lansarea WordPress

Am compilat toate elementele esențiale de verificare pentru lansarea următorului dvs. site WordPress într-o singură carte electronică la îndemână.
Da, trimite-mi eBook-ul gratuit!