Adăugarea unui shortcode în interiorul elementului Raw HTML din Visual Composer

7 feb. 2015, 23:36:03
Vizualizări: 25.4K
Voturi: 2

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?

0
Toate răspunsurile la întrebare 1
0

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.

8 feb. 2015 01:21:36