Activarea shortcode-urilor pentru câmpuri personalizate

15 iun. 2015, 11:20:28
Vizualizări: 23.6K
Voturi: 3

Deci, în această postare se explică cum să activezi shortcode-urile pentru câmpurile personalizate în WordPress. (Shortcode-urile nu sunt activate implicit pentru câmpurile personalizate.)

Ceea ce nu înțeleg este unde să plasez acest cod:

<?php echo do_shortcode(get_post_meta(get_the_ID(), 'name', true)); ?>

Înțeleg că trebuie să introduc numele câmpului meu personalizat în parametrul 'name', dar unde trebuie să plasez această linie de cod?

Presupun că în functions.php al șablonului? Nu sunt sigur unde anume în acel fișier. Nu vreau să stric nimic din șablonul meu.

Orice sugestii sunt apreciate.

2
Comentarii

Nu înțeleg cu adevărat ce încerci să faci. Shortcode-urile nu ar trebui să fie executate în interiorul unui câmp personalizat. De ce ai nevoie să faci asta? Apropo, dacă folosești do_shortcode(), atunci o faci greșit.

Pieter Goosen Pieter Goosen
15 iun. 2015 11:30:35

De acord că e o soluție proastă din punct de vedere al design-ului, dar în template-ul meu aceasta este în prezent singura soluție pentru o anumită problemă. Am nevoie să pot folosi un shortcode în interiorul unui câmp personalizat. Trebuie să fie posibil, nu-i așa?

rails_has_elegance rails_has_elegance
15 iun. 2015 11:48:46
Toate răspunsurile la întrebare 1
5
10

În mod normal, WordPress nu execută shortcode-urile introduse într-un câmp personalizat.

Implicit, Câmpurile Personalizate afișează valoarea introdusă ca text simplu, așa că dacă încercați să introduceți un shortcode (în formatul [shortcode] VALOARE [/shortcode]), veți ajunge să afișați întregul text, inclusiv tag-urile.

Adăugați următoarele în fișierul șablon, acesta poate fi single.php sau page.php:

echo apply_filters('the_content', get_post_meta($post->ID,'YOUR_CUSTOM_FIELD_NAME', true));

sau...

$shortcode = get_post_meta($post->ID,'YOUR_CUSTOM_FIELD_NAME',true);
echo do_shortcode($shortcode);
15 iun. 2015 16:58:25
Comentarii

hm, nu reușesc să fac să funcționeze. Trebuie să recunosc că nu am cea mai bună înțelegere despre cum funcționează framework-ul WordPress la nivel intern. Am încercat ambele soluții sugerate de tine, dar niciuna nu a funcționat pentru mine. Le-am încercat în fișierul page.php al șabloanelor și în fișierul single.php. Le-am lipit în partea de sus, în prima etichetă php. Poate șablonul meu pur și simplu nu poate lucra cu aceste coduri. Apropo: folosesc câmpul personalizat pe pagina mea de blog unde toate articolele de blog sunt afișate împreună într-un format de previzualizare.

rails_has_elegance rails_has_elegance
15 iun. 2015 18:21:28

Câmpurile personalizate nu funcționează corect în Formatul de previzualizare. Ar trebui să salvezi munca înainte de a testa.

Bruno Monteiro Bruno Monteiro
15 iun. 2015 20:46:15

-1 Downvote Nu folosi shortcode https://kovshenin.com/2013/dont-do_shortcode/

Brad Dalton Brad Dalton
4 aug. 2015 11:36:06

@BradDalton Argumentul lui Kovshenin este că nu ar trebui să folosești do_shortcode() atunci când poți folosi direct funcția de callback a shortcode-ului, așadar sfatul nu se aplică la întrebarea curentă. Deci anulez downvote-ul tău prin upvote-ul răspunsului!

Bigue Nique Bigue Nique
7 nov. 2018 18:04:31

Există vreo metodă de a face asta fără a modifica un fișier template al temei, de exemplu printr-un simplu plugin?

Drewdavid Drewdavid
3 mai 2021 01:10:37