Adăugarea unui shortcode în interiorul elementului Raw HTML din Visual Composer
Folosesc Visual Composer și am introdus HTML într-un element Raw HTML pentru un tabel personalizat de prețuri - acum aș dori să pot folosi pluginul World Currency pentru a afișa prețurile în diferite valute.
Shortcode-ul pentru World Currency este:
[worldcurrency curr="EUR" value="25"]
Când introduc acest cod în Raw HTML, apare ca text exact ca mai sus.
Dacă îl introduc folosind:
<?php echo do_shortcode('[worldcurrency curr="EUR" value="25"]'); ?>
nu se afișează nimic și după verificarea sursei, întregul echo este comentat în HTML.
Am încercat de asemenea să introduc HTML-ul într-un bloc de text, dar lucruri precum tooltip-urile nu mai funcționează corect și când este introdus ca text în loc de vizual, pierd complet abilitatea de a edita textul.
Există o modalitate de a folosi shortcode-ul în Raw HTML sau alt element din Visual Composer care să-mi permită să folosesc shortcode-ul și HTML-ul?

Când te uiți la modul în care funcționează de fapt do_shortcode()
, atunci este așa:
do_shortcode( $content )
Unde $content
este definit astfel:
(string)
Conținut în care se caută shortcode-uri
Ceea ce încerci să faci este să echo
ce face shortcode-ul, ceea ce duce la o presupunere greșită. Nu există nicio funcție magică care să descopere shortcode-ul tău. Shortcode-ul este pur și simplu un callback (o funcție sau o metodă) atașat unui șir de caractere pe care îl poți pune între paranteze drepte în conținutul text. Când conținutul este citit în timpul ciclului de viață/runtime și este găsit, atunci callback-ul atașat este executat în locul său. Cam același lucru se întâmplă cu acțiunile și filtrele. Deci
add_shortcode( 'bartag', 'bartag_func' );
permite acest lucru
[bartag foo="bar"]
unde bartag_func
este callback-ul. De exemplu:
function bartag_func( $atts )
{
$args = shortcode_atts( array(
'foo' => 'no foo',
'baz' => 'default baz',
), $atts );
return "foo = {$args['foo']}";
}
Ceea ce cauți (sau ar trebui să cauți) este locul în care shortcode-ul este adăugat cu add_shortcode()
. Apoi găsește callback-ul (de exemplu funcția bartag_func()
) și execută-o sau afișează-o
echo bartag_func();
Atât.
